[个人笔记]matlab教程03

小朋友,你学会了吗?

数组(矩阵)的生成及初等运算
基本的数组操作
数组的运算
数组的保存和载入
矩阵运算
矩阵分析
稀疏矩阵

数组(矩阵)的生成及初等运算

如何创建数组
直接举例子,看完下面的例子,你就会所有数组的简单直接创建了。
在这里插入图片描述
还可以用zeros、eye函数产生特定的数组,前者可以产生全零数组,后者可以产生单位阵。
使用冒号表达式生成向量
在这里插入图片描述
生成行向量也有相应的函数linspace它用于生成线性间距向量。
x是从-5开始,到5结束,包含一百个元素的行向量。
y是从-5开始,到5结束,包含一百个元素的行向量。
注意虽然结果相同,但是第一个100是默认的,无法修改,你只能改变起点和终点,但无论如何,它的元素数量只能是100个;第二个是可以修改的,三个参数分别是起点、终点、元素个数。
在这里插入图片描述

基本的数组操作

数组元素的寻址
在这里插入图片描述
数组元素的查找
查找非零元素find函数
下面的例子查找了a矩阵的非零元素,返回的是元素位置,可以发现,除1位置外全部非零。
在这里插入图片描述
find函数的其他用法
在这里插入图片描述
运行输出,结果,对照一下看看是不是你想的样子。
在这里插入图片描述
数组元素的排序
使用sort函数
有下面几种写法
B = sort(a) 按升序对a的元素进行排序。
a是向量就直接进行排序。
a是矩阵就按照列作为向量并对每列进行排序。
B = sort(a,dim) 返回a沿维度 dim 的排序元素,升序。dim是1就是按列排序,2是按行排序。
B = sort( ,direction) 按direction指定的顺序对a的元素排序。‘ascend’ 表示升序(默认值),‘descend’ 表示降序。
B = sort( ,Name,Value) 指定用于排序的其他参数。例如,sort(A,‘ComparisonMethod’,‘abs’) 按模对 A 的元素进行排序。
矩阵转置
转置就和线性代数中很像,只要在矩阵上加 就可以实现转置
转置前后。
在这里插入图片描述
矩阵重排
重排都是按列的顺序来排的。
在这里插入图片描述
矩阵拆分
在这里插入图片描述
在这里插入图片描述
注意:空赋值只能具有一个非冒号索引。如果行列都是[1,3]会报错
矩阵连接
使用cat函数
在这里插入图片描述
矩阵变换
在这里插入图片描述
运行结果(对角线的结果比较出乎意料)
在这里插入图片描述

数组的运算

此处讲的……还好帮助文档有相关的内容。
数组运算可针对向量、矩阵和多维数组的对应元素执行逐元素运算。如果操作数的大小相同,则第一个操作数中的每个元素都会与第二个操作数中同一位置的元素匹配。如果操作数的大小兼容,则每个输入都会根据需要进行隐式扩展以匹配另一个输入的大小。
解释兼容是什么基本运算兼容大小数组,类似于一个最小公倍数的道理。一个3和一个2,最近小公倍数是6,所以结果就是6;两个都是10,最小公倍数就是10,独一结果也是10。在这里插入图片描述
在这里插入图片描述
数组的算数运算符包括下面这些

运算符用途说明函数
+加法A+B 表示将 A 和 B 加在一起。plus
+一元加法+A 表示返回 A。uplus
-减法A-B 表示从 A 中减去 Bminus
-一元减法-A 表示对 A 的元素求反。uminus
.*按元素乘法A.*B 表示 A 和 B 的逐元素乘积。times
.^按元素求幂A.^B 表示包含元素 A(i,j) 的 B(i,j) 次幂的矩阵。power
./数组右除A./B 表示包含元素 A(i,j)/B(i,j) 的矩阵。rdivide
.\数组左除A.\B 表示包含元素 B(i,j)/A(i,j) 的矩阵。ldivide
.’数组转置A.’ 表示 A 的数组转置。对于复矩阵,这不涉及共轭。transpose

==一元运算:==参加运算的只有一个值,像乘方、开方……
==二元运算:==作用于两个变量,加减乘除……

矩阵运算

矩阵运算遵循线性代数的法则,与多维数组不兼容。运算双方所需输入的大小和形状取决于所执行的运算。对于非标量输入,矩阵运算符与对应的数组运算符计算出的答案通常不同。
帮助文档给出了如下例子。
在这里插入图片描述
矩阵的算数运算符如下

运算符用途说明函数
*矩阵乘法C = A*B 表示矩阵 A 和 B 的线性代数乘积。A 的列数必须与 B 的行数相等。mtimes
\矩阵左除x = A\B 是方程 Ax = B 的解。矩阵 A 和 B 必须拥有相同的行数。mldivide
/矩阵右除x = B/A 是方程 xA = B 的解。矩阵 A 和 B 必须拥有相同的列数。用左除运算符表示的话,B/A = (A’\B’)’。mrdivide
^矩阵幂A^B 表示 A 的 B 次幂(如果 B 为标量)。对于 B 的其他值,计算包含特征值和特征向量。mpower
.复共轭转置A’ 表示 A 的线性代数转置。对于复矩阵,这是复共轭转置。ctranspose

点积,叉积,混合积

点积是dot指令。得到数值。直接举一个例子。
在这里插入图片描述
叉积是cross指令。得到向量。直接举一个例子。
在这里插入图片描述
混合积,点积与叉积的混合。

范数

范数,是具有“长度”概念的函数。用于测量两个向量、函数……之间的距离。使用norm函数。
范数的例子如下,有这几种效果。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
这是帮助对奇异值的解释(有点深奥了啊,更详细的内容请查阅matlab奇异值的解释)
在这里插入图片描述

数组的保存和载入

使用函数save和load,就是运行一个函数,接下来贴出函数的使用方法(大全)
在这里插入图片描述
在这里插入图片描述

矩阵分析

主要说明几个矩阵的函数。
diag提取矩阵对角线(或生成一个对角矩阵)函数(不一定是主对角线)。对角线的序号对应如下:
在这里插入图片描述
rot90将数组旋转 90 度
det求行列式的值
rank求矩阵的秩
eig特征值和特征向量
inv求逆矩阵
这些函数的具体使用见帮助文档,不再详细解释,名词不太理解的话最好去复习一下线性代数相关知识。
其他的一些函数已经在数组的基本操作中提及了,可以翻到本文前面查看。

稀疏矩阵

没错,你没有看错稀疏不是系数,稀疏矩阵就是含有0或者没有值的量较多的矩阵。稀疏矩阵可以使用较少的空间保存这样的矩阵。用sparse函数生成稀疏矩阵。
其实帮助里还有好多相关函数,不过教程没有提。
在这里插入图片描述

	s=sparse([3 2 3 4 1],[1 2 2 3 4],[1 2 3 4 5],4,4,5)

这样的写法会生成这样的稀疏矩阵。
也就是第一个中括号是行,第二个中括号是列,第三个中括号是值,生成了4*4矩阵,一共五个非零元素。下方的保存方式显然比直接保存矩阵所占用的内存少很多。
在这里插入图片描述
稀疏矩阵转换为满矩阵用full函数。
计算稀疏矩阵非零元素个数使用nnz函数。
spy函数可以绘制稀疏函数的分布图。图是这个样子的。
在这里插入图片描述
spdiags用于提取并创建稀疏带状和对角矩阵。

逻辑运算

真或假(布尔)条件。logical 数据类型分别使用数字 1 和 0 代表 true 或 false 状态。某些 MATLAB函数和运算符返回逻辑值以指示是否满足某个条件。

函数/符号功能
and/&
not/~
or/竖线
xor异或
all确定所有的数组元素是为非零还是 true
any确定任何数组元素是否为非零
false
find查找非零元素的索引和值
islogical确定输入是否为逻辑数组
logical将数值转换为逻辑值
true

关系运算

函数/符号功能
eq/==确定相等性
ge/>=决定大于或等于
gt/>确定大于
le/<=确定小于等于
lt/<确定小于
ne/~=确定不相等性
isequal确定数组相等性
isequaln测试数组相等性,将 NaN 值视为相等

注意,=是赋值,==是比较。

  • 3
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
郭彦甫是台大的一位教授,他提供了一份关于Matlab教程笔记。你可以通过以下链接下载他的PPT文件:\[1\]https://pan.baidu.com/s/1VXdy3HCBPexMK0csyehiZA 提取码:2io1。此外,如果你需要更多关于Matlab的帮助,你可以参考Matlab官方的帮助文档:\[1\]https://ww2.mathworks.cn/help/。这些资源应该能够帮助你更好地学习和使用Matlab。 请注意,我无法提供具体的教程内容,因为我只能引用提供的资料。如果你有具体的问题或需要更多的帮助,请告诉我,我会尽力回答。 #### 引用[.reference_title] - *1* *2* [【台大郭彦甫】Matlab入门教程超详细学习笔记七:数值微积分(附PPT链接)](https://blog.csdn.net/qq_42995065/article/details/124225215)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] - *3* [台湾国立大学郭彦甫Matlab教程笔记(12) advanced 2D plot 下](https://blog.csdn.net/shizheng_Li/article/details/99827483)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值