Matlab:矩阵运算篇——矩阵

目录

1.定义

实例——创建矩阵

实例——创建复数矩阵

2.矩阵的生成

实例——M文件矩阵

2.利用文本创建

实例——创建生活用品矩阵

3.创建特殊矩阵

实例——生成特殊矩阵

 4.矩阵元素的运算

1.矩阵元素的修改

实例——新矩阵的生成

2.矩阵的变维

实例——矩阵维度修改

3.矩阵的变向

实例——矩阵的变向


1.定义

Matlab以矩阵作为数据操作的基本单位。矩阵是由m*n个数aij(i=1,2,...,m;j=1,2,...,n)排成的m行n列数表,记成。称为m*n矩阵,也可以记成或者。i表示行数,j表示列数,若m=n,则该矩阵为n阶矩阵(n阶方阵)。

用这个方法创建矩阵时,需要注意以下几点:

  • 输入矩阵时要以[]为其标识符;
  • 矩阵同行元素之间由空格(个数不限)或逗号分隔,行与行之间用分号或回车键分隔;
  • 矩阵大小不需要预先定义;
  • 若[]中无元素,表示空矩阵;
  • 如果不想显示中间结果,可以用分号结束。

实例——创建矩阵

创建元素均是15的3*3矩阵。matlab程序如下:

>>a=[15 15 15;15 15 15;15 15 15]
a=15 15 1515 15 1515 15 15

实例——创建复数矩阵

创建包含复数的矩阵A,其中,,matlab程序如下:

>> A=[[1,1+i,2];[2,3+2i,1]]A =1.0000 + 0.0000i   1.0000 + 1.0000i   2.0000 + 0.0000i2.0000 + 0.0000i   3.0000 + 2.0000i   1.0000 + 0.0000i

2.矩阵的生成

矩阵的生成除了直接输入法,还可以利用M文件生成法和文本文件生成法等。

1.利用M文件创建

当矩阵的规模比较大时,直接输入法就显得笨拙,出差错也不易修改。为了解决这些问题,可以将所要输入的矩阵按格式先写入一文本文件中,以m为其扩展名,即M文件。

M文件是一种可以在matlab 环境下运行的文本文件,它可以分为命令式文件和函数式文件两种。在此处主要用到的是命令式M文件,用它的简单形式来创建大型矩阵。在matlab 命令行窗口中输入M文件名,所要输入的大型矩阵即可被输入到内存中。

实例——M文件矩阵

(1)编制一个名为gmatrix的矩阵。

(2)在M文件编辑器中编制一个名为sample.m的M文件。

(注:M文件中的变量名与文件名不能相同,否则会造成变量名和函数名混乱。)


>> sample.M
gmatrix=[378 89 90 83 382 92 29;
3829 32 9283 2938 378 839 29;
388 389 200 923 920 92 7478;
3829 892 66 89 90 56 8980;
7827 67 890 6557 45 123 35]

(3)运行M文件。在matlab命令行窗口中输入文件名,结果如下:

>> samplegmatrix =378          89          90          83         382          92          293829          32        9283        2938         378         839          29388         389         200         923         920          92        74783829         892          66          89          90          56        89807827          67         890        6557          45         123          35

2.利用文本创建

即在文件夹(通常为work文件夹)中建立txt文件,在命令行窗口中直接调用这个文件名即可。

实例——创建生活用品矩阵

日用商品在三家商店中有不同的价格,其中,毛巾有三种3.5元、4元,5元;脸盆10元,15元,20元;单位量的售价用矩阵表示(行表示商店,列表示商品),用文本文件创建矩阵x。
(1)事先在记事本中建立文件并输入

3.5 4 5
10 15 20

(2)以goods.txt保存,在命令行窗口中输入

>> goodsgoods =3.5000    4.0000    5.000010.0000   15.0000   20.0000

由创建商品矩阵X。

3.创建特殊矩阵

可以直接用函数来生成某些特定的矩阵,以下是常用函数:

eye(n)创建n*n单位矩阵
eye(m,n)创建m*n单位矩阵
eye(size(A))创建与A维数相同的单位阵
ones(n)创建n*n全1矩阵
ones(m*n)创建m*n全1矩阵
one(size(A))创建与A维数相同的全1阵
zeros(m*n)创建n*n全0矩阵
zeros(size(A))创建与A维数相同的全0矩阵
rand(n)在[0,1]区间内创建一个n*n均匀分布的随机矩阵
rand(m*n)在[0,1]区间内创建一个m*n均匀分布的随机矩阵
rand(size(A))在[0,1]区间内创建一个与A维数相同的均匀分布的随机矩阵
compan(P)创建系数向量是 P的多项式的伴随矩阵
diag(v)创建一向量v中的元素为对角的对角阵
hilb(n)创建n*n的Hilbert矩阵
magiic(n)生成n阶魔方矩阵
sparse(A)将矩阵A转化为稀疏矩阵形式

实例——生成特殊矩阵

>> zeros(3)ans =0     0     00     0     00     0     0>> zeros(3,2)ans =0     00     00     0>> ones(3,2)ans =1     11     11     1>> ones(3)ans =1     1     11     1     11     1     1>> rand(3)ans =0.8147    0.9134    0.27850.9058    0.6324    0.54690.1270    0.0975    0.9575>> rand(3,2)ans =0.9649    0.95720.1576    0.48540.9706    0.8003>> magic(3)ans =8     1     63     5     74     9     2>> hilb(3)ans =1.0000    0.5000    0.33330.5000    0.3333    0.25000.3333    0.2500    0.2000>> invhilb(3)ans =9   -36    30-36   192  -18030  -180   180>> 

 4.矩阵元素的运算

1.矩阵元素的修改

矩阵中的元素与向量中的元素一样,可以进行抽取引用,编辑修改等操作。

矩阵元素修改命令
命令名说明
D=[A;B C]A是原矩阵,B,C中包含要扩充的元素,D为扩充后的矩阵
A(m,:)=[]删除A的第m行
A(:,n)=[]删除A的第n行
A(m,n)=a;A(m,:)=[a b...];A(:,n)=[a b...]对A的第m行第n列的元素赋值;对A的第m行的元素赋值;对A的第n列赋值;

实例——新矩阵的生成

修改矩阵元素,创建新矩阵

>> A=[1 2 3;4 5 6];
B=eye(2);
C=zeros(2,1);
D=[A;B C]D =1     2     34     5     61     0     00     1     0>> 

2.矩阵的变维

可以用符合:法和reshape函数法。reshape函数的调用形式如下:reshape(X,m,n),将已知矩阵变维成m行n列的矩阵。

实例——矩阵维度修改

演示矩阵的维度变换

>> A=1:12;
B=reshape(A,2,6)B =1     3     5     7     9    112     4     6     8    10    12>> C=zeros(3,4);
C(:)=A(:)C =1     4     7    102     5     8    113     6     9    12>> 

3.矩阵的变向

矩阵变相命令
Rot(90)将A逆时针方向旋转90°
Rot(90,K)将A逆时针方向旋转90°,k可以是正整数或负整数
Fliplr(X)将X左右翻转
flipud(X)将X上下翻转
flipdim(X,dim)qdim=1时对行翻转,dim=2时对列翻转

实例——矩阵的变向

>> A=1:12;
C=zeros(3,4);
C(:)=A(:)C =1     4     7    102     5     8    113     6     9    12>> flipdim(C,1)ans =3     6     9    122     5     8    111     4     7    10>> flipdim(C,2)ans =10     7     4     111     8     5     212     9     6     3>> 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/31945.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

从0到1入门Docker

一、快速入门 Docker run命令中的常见参数 -d:让容器后台运行--name:给容器命名(唯一)-e:环境变量-p:宿主机端口映射到容器内端口镜像名称结构:Repository :TAG(镜像名&…

Python的浮点数

在 Python 中,有四种内置数值类型,分别是整型整数类型(int)、布尔类型(bool)、浮点数类型(float)和复数类型(complex)。浮点数默认是双精度类型,占…

从零开始 | C语言基础刷题DAY1

❤个人主页:折枝寄北的博客 DAY1[2025.3.11] 1. 求两个数的较大值2.从键盘输入的两个数的大小关系3.一个整数的奇偶性,请判断4. 考试分数是否通过5.考试成绩是否完美,请判断 1. 求两个数的较大值 题目: 写一个函数求两个整数的较…

[pytest] 配置

这里写目录标题 PytestInitRun3. 根据命令行选项将不同的值传递给测试函数 Report1. 向测试报告标题添加信息2. 分析测试持续时间 pytest --durations33. 增量测试 - 测试步骤--junitxml{report}.xml1. testsuite1.1 在测试套件级别添加属性节点 record_testsuite_property 2. …

物联网商业模式

物联网商业模式是一种战略规划,它融合了物联网技术来创造价值并获取收入。它与传统商业模式的不同之处在于,它利用互联设备来改善运营、提升客户体验以及优化服务项目。在当今由科技驱动的世界中,这种商业模式通过利用实时数据来提供创新服务…

springboot432-基于SpringBoot的酒店管理系统(源码+数据库+纯前后端分离+部署讲解等)

💕💕作者: 爱笑学姐 💕💕个人简介:十年Java,Python美女程序员一枚,精通计算机专业前后端各类框架。 💕💕各类成品Java毕设 。javaweb,ssm&#xf…

Manus AI:开启Agent元年的ChatGPT时刻(附赠资料)

1. Manus AI:全球首个通用Agent Manus AI 是全球首个通用人工智能代理,连接思想与行动,不仅思考,还能交付成果。Manus 擅长处理工作和生活中的各种任务,帮助用户完成一切。其核心理念是“less structure, more intell…

vscode接入DeepSeek 免费送2000 万 Tokens 解决DeepSeek无法充值问题

1. 在vscode中安装插件 Cline 2.打开硅基流动官网 3. 注册并登陆,邀请码 WpcqcXMs 4.登录后新建秘钥 5. 在vscode中配置cline (1) API Provider 选择 OpenAI Compatible ; (2) Base URL设置为 https://api.siliconflow.cn](https://api.siliconfl…

从零使用docker并安装部署mysql8.3.0容器

在开始使用docker到完成mysql的安装部署,中间有很多的坑等着 安装docker并配置 sudo yum install docker-ce 启动docker并设置开机启动项 sudo systemctl start docker sudo systemctl enable docker查看docker是否启动 sudo systemctl status docker 或者直接…

golang 静态库 Undefined symbol: __mingw_vfprintf

正常用golang编译一个静态库给 其他语言 调用,编译时报错 Error: Undefined symbol: __mingw_vfprintf 很是奇怪,之前用用golang写静态库成功过,编译也没问题,结果却是截然不同。 试了很多次,发现唯一的差别就是在 …

如何下载一些网上只提供了预览的pdf

有些网站上提供了pdf的预览,但是不提供下载入口 这时候用浏览器调出开发人员工具(F12),找Fetch/XHR这个选项,里看启动器中有pdf的那个文件,点选 它。 然后就能找到它的网址了,直接把这个网址选中&#xff…

力扣-数组-34 在排序数组中查找元素的第一个和最后一个位置

思路和时间复杂度 思路&#xff1a;先找到中间数&#xff0c;如果没找到就返回{-1&#xff0c;-1}&#xff0c;如果找到了就以当前节点为中点&#xff0c;向两边扩时间复杂度&#xff1a; 代码 class Solution { public:vector<int> searchRange(vector<int…

一二三应用开发平台——能力扩展:多数据源支持

背景 随着项目规模的扩大&#xff0c;单一数据源已无法满足复杂业务需求&#xff0c;多数据源应运而生。 技术选型 MyBatis-Plus 的官网提供了两种多数据源扩展插件&#xff1a;开源生态的 <font style"color:rgb(53, 56, 65);">dynamic-datasource</fon…

NAFNet:Simple Baselines for Image Restoration

Abstract 近年来&#xff0c;图像复原技术取得了长足的进步&#xff0c;但现有的图像复原方法&#xff08;SOTA&#xff09;系统复杂度也在不断增加&#xff0c;不利于对各种方法的分析和比较。在本文中&#xff0c;我们提出了一种简单的基线&#xff0c;它超越了SOTA方法&…

python语言总结(持续更新)

本文主要是总结各函数&#xff0c;简单的函数不会给予示例&#xff0c;如果在平日遇到一些新类型将会添加 基础知识 输入与输出 print([要输出的内容])输出函数 input([提示内容]如果输入提示内容会在交互界面显示&#xff0c;用以提示用户)输入函数 注释 # 单行注释符&…

基于springboot和spring-boot-starter-data-jpa快速操作mysql数据库

1、创建springboot项目 2、pom.xml文件 <?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven.apache.org/POM/4.0.0" xmlns:xsi"http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation"http:…

【Spring】基础/体系结构/核心模块

概述&#xff1a; Spring 是另一个主流的 Java Web 开发框架&#xff0c;该框架是一个轻量级的应用框架。 Spring 是分层的 Java SE/EE full-stack 轻量级开源框架&#xff0c;以 IoC&#xff08;Inverse of Control&#xff0c;控制反转&#xff09;和 AOP&#xff08;Aspect…

VMware安装Windows server 2016

1、新建虚拟机&#xff0c;选择自定义模式 2、选择兼容性 4、命名虚拟机 5、固件类型 EFI 虚拟磁盘类型&#xff0c;不同电脑推荐的类型不同&#xff0c;用默认的就行 删除声卡和打印机 检查网络配置 选择本地的Windows server 2016的系统镜像&#xff0c;系统镜像可以去Window…

【MySQL】增删改查进阶

目录 一、数据库约束 约束类型 NULL约束&#xff1a;非空约束 UNIQUE&#xff1a;唯一约束 DEFAULT&#xff1a;默认值约束 PRIMARY KEY&#xff1a;主键约束 FOREIGN KEY&#xff1a;外键约束 二、表的设计 三、新增 四、查询 聚合查询 聚合函数 GROUP BY子句 HA…

使用Process Explorer、Dependency Walker和PE信息查看工具快速排查dll动态库因库与库版本不一致导致的加载失败问题

目录 1、问题说明 2、使用Process Explorer查看目标dll动态库有没有动态加载起来 3、使用Dependency Walker查看xxpadll.dll库的库依赖关系&#xff0c;找到xxpadll.dll加载失败的原因 4、使用PE信息查看工具查看目标dll库的时间戳 5、关于xxsipstack2.dll中调用xxdatanet…