该楼层疑似违规已被系统折叠 隐藏此楼查看此楼

MATLAB既然以矩阵实验室命名,就说明该软件在矩阵计算方面具有非常优异的表现。在MATLAB中,一般情况下一个矩阵就是指一个长方形的数组。特殊情况有两个,一是单一元素的标量,二是只有一行或者一列的矩阵,也就是向量。MATLAB也有其他储存数值和非数值数据的方式,但是对于初学者来说,最好是将所有的情况都考虑为矩阵,这样更容易使用。MATLAB的设计理念是所有的操作尽可能的自然。其他编程语言在处理数据的过程中,每次只能处理一个数值,而MATLAB则允许用户快速方便地采用矩阵来操作。

1.矩阵的创建与组合

MATLAB最基本的数据结构就是矩阵,一个二维的、长方形形状的数据,可以用易于使用的矩阵形式来储存,这些数据可以是数字、字符、逻辑状态(true或者false),甚至是MATLAB的结构数组类型。MATLAB使用二维的矩阵来储存单个数值或者线性数列。MATLAB同时支持多于二维的数据结构。

1.1创建简单矩阵

MATLAB是基于矩阵的计算环境。所有用户输入的数据都将会以矩阵的形式或者多维数组来储存。即使是一个数值型的标量,比如说100,都会以矩阵的形式来储存。

【例2-1】 单个标量的输入示例。

>> A = 100; % 输入数值A

>> whos % whos命令可以用来查看Workspace中所存储的变量信息

Name Size Bytes Class Attributes

A 1x1 8 double

从本例可以看出,标量A的存储格式为1×1的矩阵,它占用了8个字节的内存空间,数据的类型是双精度浮点数。

创建MATLAB矩阵最简单的方式是使用MATLAB的矩阵构建标识符,即方括号[]。创建一个行向量只需要在中括号里面输入相应的元素,并用空格或者逗号作为分隔符分隔相邻的元素即可。

>> row = [E1, E2, ..., En]

>> row = [E1 E2 ... En]

如果要在矩阵中输入下一行,用分号作为行之间的分隔符即可:

>>A = [row1; row2; ...; rown]

例如创建一个包括5个元素的单行矩阵,可以在命令行中输入下面的命令:

>> A = [12 62 93 -8 22];

【例2-2】 创建2~20区间内以2为步长的向量。

在MATLAB中可以通过“初值:步长:终值”的方式创立向量。本例中可以在命令窗口中输入:

>>a=2:2:20

按回车键,在命令窗口显示为:

a =

2 4 6 8 10 12 14 16 18 20

需要指出的是:步长可以为正数、负数或者小数。若用户不指定表达式中的步长一项,MATLAB则默认步长为1。例如:

>> b=1:10

b =

1 2 3 4 5 6 7 8 9 10

另外如果用户指定的区间并不是步长的整数倍,那么将以初值为准,依次加上步长来产生序列,正如下面的c中所示。

>> c=3:5:15

c =

3 8 13

【例2-3】 举例说明如何创建一个3行5列的矩阵。需要指出的是:在矩阵的输入过程中,矩阵的每一行必须有同样多的元素个数。

>> A = [12 62 93 -8 22; 16 2 87 43 91; -4 17-72 95 6]

A =

12 62 93 -8 22

16 2 87 43 91

-4 17 -72 95 6

方括号标识符只能创建二维矩阵,包括0´0、1´1、1´n、m´n等类型。如果要创建多维矩阵,请继续关注公号文章。而如果需要读取和赋值矩阵中的某些元素,也请继续关注。

在将一个带正负号的数值输入矩阵的时候要注意,符号后面要紧接着数值,两者之间不要有空格。通过下面的比较可以看出有哪些不同。

【例2-4】 矩阵中带符号的数值输入示例。

下面两个在运算表达式中的例子说明,符号与数值之间是否有空格并不影响计算的结果。

>> 7 -2 +5

ans =

10

>> 7 - 2 +5

ans =

10

但是下面的两个例子则说明,在矩阵的输入过程中如果符号与数值之间有空格,那么其结果是不同的。读者在这方面一定要注意,以免导致计算结果错误。

>> [7 - 2 + 5]

ans =

10

>> [7 -2 +5]

ans =

7 -2 5

1.2 创建特殊矩阵

MATLAB内嵌有很多函数,可以直接用来创建不同的特殊矩阵。比如创建汉克尔矩阵和范德蒙德矩阵。表2-1中列出了一些常用的特殊矩阵的创建函数。这里需要再次强调一下,函数名称对于大小写是敏感的,在MATLAB中函数名称一般是全部小写的,如果转换了其中一个字母的大小写那么可能调用的就是另一个函数或者会发生调用错误。

表2-1 常用特殊矩阵的创建函数

函数名称 函数功能 函数名称 函数功能

zeros 产生一个所有元素为零的矩阵 pascal 生成PASCAL矩阵

diag 产生一个对角矩阵 rand 随机产生均匀分布的矩阵

ones 生成所有元素全为1的矩阵 randn 随机产生正态分布的矩阵

eye 生成单位矩阵 randperm 产生一个由指定整数元素随机分布构成的矩阵

magic 生成魔方矩阵

【例2-5】 特殊矩阵创建函数示例。

>> ones(4) % 创建所有元素为1的矩阵

ans =

1 1 1 1

1 1 1 1

1 1 1 1

1 1 1 1

>> eye(5) % 创建单位矩阵

ans =

1 0 0 0 0

0 1 0 0 0

0 0 1 0 0

0 0 0 1 0

0 0 0 0 1

>> rand(2,3) % 创建2´3的均匀分布随机数矩阵

ans =

0.8147 0.1270 0.6324

0.9058 0.9134 0.0975

>> randperm(7) % 创建由1∶7构成的随机数列

ans =

5 1 2 7 3 4 6

需要指出的是:每次运行随机函数都会得到不同的结果,这是因为默认状态下随机数的种子都不同。这也是随机数的意义所在。若要用函数产生相同的矩阵以验证操作的结果,可以按如下方法设置随机种子状态:

>>rand('state', 0);

>> randperm(7)

ans =

2 7 4 3 6 5 1

通过如此设置,读者就可以得到和本书中相同的结果。

1.3 矩阵的合并

矩阵的合并是指将两个或者多个矩阵合并到一起构成一个新的矩阵。前面提到的矩阵标识符方括号[],不仅可以用来创建新的矩阵,还可以用来将若干个矩阵合并到一起。

表达式C = [A B]将矩阵A和B在水平方向上合并到一起,而表达式C = [A; B]则将矩阵A和B在竖直方向上合并到一起。

【例2-6】 求矩阵A和B在竖直方向上合并到一起后得到的矩阵C。

>> rand('state', 0); % 设置随机种子,便于读者验证

>> A = ones(2, 5) * 6; % 元素全部为6的2´5矩阵

>> B = rand(3, 5); % 3´5 的随机数矩阵

>> C = [A; B]

C =

6.0000 6.0000 6.0000 6.0000 6.0000

6.0000 6.0000 6.0000 6.0000 6.0000

0.9501 0.4860 0.4565 0.4447 0.9218

0.2311 0.8913 0.0185 0.6154 0.7382

0.6068 0.7621 0.8214 0.7919 0.1763

需要指出的是:在矩阵的合并过程中要保持新生成的矩阵为长方形,否则MATLAB将会报错。也就是说,如果要在水平方向上合并矩阵,那么每个子矩阵的行数必须相同;如果要在竖直方向上合并矩阵,那么每个子矩阵的列数必须相同。

如图2-1所示,图中具有相同行数的矩阵可以水平合并,而行数不同的矩阵是不能水平合并的。

MATLAB矩阵画法,MATLAB矩阵与数组相关推荐

  1. MATLAB 语言基础知识 矩阵和数组 创建、串联和扩展矩阵

    最基本的MATLAB数据结构体是矩阵.矩阵是按行和列排列的数据元素的二维矩形数组.元素可以是数字.逻辑值(true 或 false).日期和时间.字符串或者其他MATLAB数据类型. 即使一个数字也能 ...

  2. 【MATLAB实验】MATLAB矩阵与数组及改变矩阵形状(rot90函数逆时针旋转、矩阵转置)

    目录 Matlab矩阵 矩阵除法 矩阵乘方 数组的乘和除 数组的乘方 数据的输出格式 常用函数的应用 矩阵的建立 冒号表达式 结构矩阵和单元矩阵 结构矩阵: 单元矩阵: 矩阵元素的引用方式 利用冒号表 ...

  3. matlab视频教程矩阵,Matlab-初级教程-系列1:matlab之入门教学视频-3 数组和矩阵分析2...

    Matlab-初级教程-系列1:matlab之入门教学视频-3 数组和矩阵分析2 一.矩阵的基本数值运算 矩阵的加减运算 a+b,a-b: a,b 的维数必须相同,对应的元素相加减, 2.矩阵的乘法 ...

  4. MATLAB基础操作,矩阵乘法、数组矩阵索引、最大最小运算符、零矩阵/随机矩阵/单位矩阵的生成、log函数、Inf和NaN的含义,语句过长用连接符换行、逻辑运算符以及区别

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言 一.矩阵相乘 二.矩阵生成 1.直接输入 2.单位矩阵 3.全零矩阵 2.全一矩阵 2.随机矩阵 三.矩阵操作 四.矩 ...

  5. matlab矩阵错位相加,矩阵的旋转和相加——数组实现

    1.矩阵 在数学中,矩阵是一个矩形阵列排列的复数和实数集合.是高等代数中常见的工具.在计算机科学中,一些数值分析.动画制作.游戏等方面就会用到矩阵.在编程语言中矩阵可以用一个二维数组进行模拟,如下图所 ...

  6. 技术图文:Matlab VS. Numpy 常见矩阵

    背景 前段时间在知识星球上立了一个Flag,至少写10篇关于 Python,Matlab 和 C# 对比的总结. 这是第 4 篇,对比 Matlab 与 Numpy 中经常用到的各种矩阵,比如零矩阵. ...

  7. 范德蒙德矩阵在MATLAB中怎么表示,Python 之 Python与MATLAB 矩阵操作总结

    Python 之 Python与MATLAB 矩阵操作小结 一.线形代数理论基础 线形代数(linear algebra)是数学的一个分支,研究矩阵理论.向量空间.线性变换和有限维线形方程组等内容. ...

  8. 自定义Matlab功能函数——10进制整数矩阵转二进制字符矩阵

    不同版本matlab的m语言语法会略有不同,这里使用的版本为Matlab 2021a. 一. 10进制整数矩阵转二进制字符矩阵 因为FPGA只能识别二进制,所以在做Verilog仿真时经常需要matl ...

  9. matlab 判断两个矩阵有元素相等_如何使用MATLAB对Excel中的多参数进行计算?

    THE START MATLAB和Excel这两者之间有着什么样的关系呢?今天我把之前学习以及用到的关于用MATLAB读写Excel数据,并进行计算处理的经验分享给需要的小伙伴.参加过数学建模的这个应 ...

最新文章

  1. Activity Stack
  2. springmvc国际化 基于浏览器语言的国际化配置
  3. 《MySQL管理之道:性能调优、高可用与监控》china-pub首发!
  4. linux运维学了又忘记,Linux运维工程师经常忘记的10个实用Linux命令
  5. Servlet第五篇【介绍会话技术、Cookie的API、详解、应用】
  6. Java千百问_03基本语法(002)_java都有哪些关键字
  7. RDP协议详细解析(五)
  8. PAT1021. 个位数统计
  9. Android data分区格式F2FS改为EXT4
  10. 狡兔死,良弓藏-每个王朝都一样
  11. php检索条件丢失,php – 从SQL Server检索时丢失的某些图像的一部分
  12. Android提高显示布局文件的性能,使用include标签重用layouts
  13. android常用代码合集,Android开发常用经典代码段集锦
  14. 网易音乐社交产品 MUS 上线
  15. VTK笔记-图形相关-两个平面上的多边形+三角带=闭合多边形(棱柱体)
  16. 松翰单片机定时器c语言,松翰T0 定时器中断
  17. C++大型项目开发约束
  18. oracle课堂收录-触发器
  19. 深入探讨大数据权限管理方案-从哲学到技术
  20. 地图标注源码 php,百度地图设置坐标,标注坐标地理位置

热门文章

  1. urlencoded格式化
  2. 线性关系r范围_一个简单线性回归和多项式回归在R中的实现示例
  3. 2020-12-12
  4. 寒假第三周学习总结与反思
  5. mysql基础篇笔记(黑马)
  6. 互联网协议学习笔记-----IP协议与传输协议
  7. ssm+mysql+安卓app大学生社团信息管理系统-计算机毕业设计源码99953
  8. EOS、BPS怎样进行应用的部署
  9. NFC NFC手机 兼容的标签 支持Mifare Classic 手机列表
  10. 综述 | 图像计算传感器