有这么几种方法,直接[ ]法是最简单的
S=[1 3 4 5 6]
其他方法如下代码所示
根据最大最小值步长所构造一个1行N列矩阵:
A=1:2:9 %1作为最小值,9作为最大值,中间2是步长,创建一个1行N列矩阵
%最小值+2=3,3+2=5,5+2=7,7+2=最大值
B=1:3:9 %最小值+3=4,再+3=7,再+3=10但超出最大值,所以不列为矩阵内得数
结果为
A =
1 3 5 7 9
B =
1 4 7
将某矩阵看作一个整体,进行拓展整体行列的方法构造新矩阵:
C=repmat(B,3,1) %rempat函数意思是将B矩阵看作一个整体,构造一个3行1列的B矩阵整体
D=repmat(A,2,2) %构造一个2行2列的A矩阵整体
结果为
C =
1 4 7
1 4 7
1 4 7
D =
1 3 5 7 9 1 3 5 7 9
1 3 5 7 9 1 3 5 7 9
构造一个全1矩阵:
E=ones(3,2) %构造一个3行2列的全1矩阵(ones函数用法)
结果为
E =
1 1
1 1
1 1
这个很好理解,学过线性代数都知道。
废话不多说,看代码
A=[1 2 5 3;1 3 5 2]
B=[2 3 4 2;3 2 4 1]
C=A + B %A矩阵与B矩阵对应项相加得到一个还是2行4列的矩阵
结果为
C =
3 5 9 5
4 5 9 3
D=A - B %A矩阵与B矩阵对应项相减得到一个还是2行4列的矩阵
结果为
D =
-1 -1 1 1
-2 1 1 1
F=A .* B %A矩阵与B矩阵对应项相乘得到一个还是2行4列的矩阵
结果为
F =
2 6 20 6
3 6 20 2
H=A ./ B %A矩阵与B矩阵对应项相除得到一个还是2行4列的矩阵
结果为
H =
0.5000 0.6667 1.2500 1.5000
0.3333 1.5000 1.2500 2.0000
E=A * B' %A矩阵*B的转置矩阵,可得一个2行2列的矩阵,矩阵乘法参考线性代数
结果为
E =
34 30
35 31
G=A / B %A矩阵与B矩阵相除就是A矩阵*B的逆矩阵,也就是A*inv(B)
结果为
G =
1.3333 -0.3333
1.3333 -0.3000
注意事项
百度百科·矩阵乘法
https://baike.baidu.com/item/%E7%9F%A9%E9%98%B5%E4%B9%98%E6%B3%95/5446029
一般是根据下标查找矩阵的值或者根据值查找矩阵的下标或者查找矩阵某行/列所有值
看代码
A=magic(4) %生成一个4阶幻方矩阵
结果为
A =
16 2 3 13
5 11 10 8
9 7 6 12
4 14 15 1
B=A(3,4) %B矩阵是A矩阵第3行第4列的值构造出来的1x1矩阵
%3,4是A矩阵下标
结果为
B =
12
C=A(2,:) %C矩阵是第2行的所有值构造出来的1行4列矩阵
%“:”是代表取全部
结果为
C =
5 11 10 8
D=A(:,1) %D矩阵是第1列的所有值构造出来的4行1列矩阵
结果为
D =
16
5
9
4
[m,n]=find(A > 10) %m,n代表矩阵下标,find函数用法查百度。
%意思是找A矩阵中的大于10的值的下标序号,就是其所在的m行n列。
%% 练习
S=[10 3 5 7 24]
[q,w]=find(S>5)
%[q,w]=find(5) %这个意思是找到S矩阵中值为5的所在位置下标
结果为:
m =
1
2
4
4
1
3
n =
1
2
2
3
4
4
S =
10 3 5 7 24
q =
1 1 1
w =
1 4 5
矩阵算是搞完了,还是比较难的,掌握了就好。