一、基本操作
操作符 :
+ - * / ^
优先级
![](https://i-blog.csdnimg.cn/blog_migrate/008b0bdb49dd53a6fe128bfd11b3007f.png)
例
![](https://i-blog.csdnimg.cn/blog_migrate/a09331fc909956edae8d25f770ce5c35.png)
——>pi ∞——>Inf
根号——>sqrt()
ln——>log()
变量
不需要提前声明;不能以数字开头;区分大小写;不能用关键字名命
类型
默认:double
![](https://i-blog.csdnimg.cn/blog_migrate/0922691a6ad222fca61de549eaea386a.png)
Format
![](https://i-blog.csdnimg.cn/blog_migrate/68e279605c3639ed73257db5e7d9a935.png)
用法:
>> format rat %数值成有理数
>> 3/13+4/14+5/15
ans =
232/273
![](https://i-blog.csdnimg.cn/blog_migrate/a3758e2816cbe1847b621c5478cdc505.png)
二、矩阵输入
- (Array)行 、列定义
由 m*n 个数排成的m行n列的数表称为m行n列的矩阵,简称 m*n 矩阵。
![](https://i-blog.csdnimg.cn/blog_migrate/df5a56e43bb135f8975ce60f3eed42d1.png)
![](https://i-blog.csdnimg.cn/blog_migrate/7805d70ca3bbf29a0171bb2f9c472155.png)
2、在矩阵中描述一个元素子集
![](https://i-blog.csdnimg.cn/blog_migrate/dd0fcb9bb1cd36c060d227a4be43b19e.png)
![](https://i-blog.csdnimg.cn/blog_migrate/02aad418c52739c4ab066748f6949072.png)
3. :用法
创建向量
语法:
![](https://i-blog.csdnimg.cn/blog_migrate/71692fd54dc2380df25877c5181a24b6.png)
>> a=[1:20]
a =
Columns 1 through 12
1 2 3 4 5 6 7 8 9 10 11 12
Columns 13 through 20
13 14 15 16 17 18 19 20
% 等差i
>> b=[1:2:20]
% 输出
b =
1 3 5 7 9 11 13 15 17 19
索引:
使用A(3,:)索引矩阵A的整个第三行 A(3,:)=[]使矩阵A的整个第三行等于空矩阵:
![](https://i-blog.csdnimg.cn/blog_migrate/30965df0f4b01611a65f3558fc529945.png)
4.矩阵运算
1)乘法*
两个矩阵的乘法仅当第一个矩阵的列数和另一个矩阵的行数相等时才能定义,m×n 矩阵 A 和n×p 矩阵 B 相乘,会得到一个 m×p 矩阵 C ,记为 C=AB 。
![](https://i-blog.csdnimg.cn/blog_migrate/125c0bac577549ab68597873ce5dfbb9.png)
![](https://i-blog.csdnimg.cn/blog_migrate/e7bfc2e6219a5f1c36de815f1c821c0c.png)
2)点乘.*
对应位置数相乘
![](https://i-blog.csdnimg.cn/blog_migrate/38a6aaff090c0937292d37b196546e88.png)
3) 转置'
![](https://i-blog.csdnimg.cn/blog_migrate/327bb1a3b0d6a8909ec7047166a68940.png)
5.一些特殊矩阵
eye(n):n×n单位矩阵 diag():对角矩阵 对角线有值 rand():均匀分布的随机数(服从[0,1]上均匀分布)
zeros(n1,n2): n1×n2的全0矩阵
ones(n1,n2):n1×n2的全1矩阵
>> eye(3)
ans =
1 0 0
0 1 0
0 0 1
>> diag([1,2,3])
ans =
1 0 0
0 2 0
0 0 3
>> rand(5)
ans =
0.9058 0.2785 0.9706 0.4218 0.0357
0.1270 0.5469 0.9572 0.9157 0.8491
0.9134 0.9575 0.4854 0.7922 0.9340
0.6324 0.9649 0.8003 0.9595 0.6787
0.0975 0.1576 0.1419 0.6557 0.7577
linspace(x,y,n):线性间隔的向量,从x到y均等的给出n个数。
logspace(a,b,n):在和
之间生成n个对数间距点,不是均分。
6.一些相关函数
max(A):给出每一列中最大的数
max(max(A)):给出整个矩阵最大值
min相同用法
sum(A):每一列相加
sum(sum(A)):整个矩阵元素相加
mean(A):每一列求平均
mean(mean(A)):整体求平均
>> A=[ 1 3 5;2 2 6; 8 6 4]
A =
1 3 5
2 2 6
8 6 4
>> mean(A)
ans =
3.6667 3.6667 5.0000
>> mean(mean(A))
ans =
4.1111
sort(A):每一个列排序(从小到大),得到一个原维度的矩阵
sortrows(A):以行为单位(行元素捆绑),按照第一列的数从小到大排
>> sort(A)
ans =
1 2 4
2 3 5
8 6 6
>> sortrows(A)
ans =
1 3 5
2 2 6
8 6 4
size(A):给出行列
size(A,1) 仅查询 A 的第一个维度的长度
size(A,2) 仅查询 A 的第二个维度的长度
length(A):将A各个维度的长度作比较,返回最大的那个
find(A)
用法find(A==X):给出矩阵A中等于元素X的位置(按列的顺序标号)
>> a=[1 2 3 4; 4 5 3 2]
a =
1 2 3 4
4 5 3 2
>> size(a)
ans =
2 4
>> length(a)
ans =
4
>> find(a==2)
ans =
3
8