一、输入矩阵
>> A=[1,2,3;4,5,6]
A =
1 2 3
4 5 6
>> B=[-1,-2;-3,-4;-5,-6]
B =
-1 -2
-3 -4
-5 -6
>> C=[A,B;B,A] //矩阵的维度不一样不能拼
错误使用 horzcat
要串联的数组的维度不一致。
>> D=[-1,-2,-3;-4,-5,-6]
D =
-1 -2 -3
-4 -5 -6
>> E=[A,D;D,A] //这样可以拼成一个矩阵
E =
1 2 3 -1 -2 -3
4 5 6 -4 -5 -6
-1 -2 -3 1 2 3
-4 -5 -6 4 5 6
>> F=A+i*D //分别写出复数矩阵的实部和虚部,然后用i把这两部分连起来
F =
1.0000 - 1.0000i 2.0000 - 2.0000i 3.0000 - 3.0000i
4.0000 - 4.0000i 5.0000 - 5.0000i 6.0000 - 6.0000i
二、冒号表达式 & linspace函数
同样都是创建一个有规律的行向量,冒号表达式可能是用在已知步长的情况下,而linspace是在步长未知的情况下的使用
1、冒号表达式
eg.
>> e=1:2:100
e =
1 至 11 列
1 3 5 7 9 11 13 15 17 19 21
12 至 22 列
23 25 27 29 31 33 35 37 39 41 43
23 至 33 列
45 47 49 51 53 55 57 59 61 63 65
34 至 44 列
67 69 71 73 75 77 79 81 83 85 87
45 至 50 列
89 91 93 95 97 99
2、linspace
eg:
>> linspace(1,pi)
ans =
1 至 7 列
1.0000 1.0216 1.0433 1.0649 1.0865 1.1082 1.1298
8 至 14 列
1.1514 1.1731 1.1947 1.2163 1.2380 1.2596 1.2812
15 至 21 列
1.3029 1.3245 1.3461 1.3677 1.3894 1.4110 1.4326
22 至 28 列
1.4543 1.4759 1.4975 1.5192 1.5408 1.5624 1.5841
29 至 35 列
1.6057 1.6273 1.6490 1.6706 1.6922 1.7139 1.7355
36 至 42 列
1.7571 1.7788 1.8004 1.8220 1.8437 1.8653 1.8869
43 至 49 列
1.9086 1.9302 1.9518 1.9735 1.9951 2.0167 2.0383
50 至 56 列
2.0600 2.0816 2.1032 2.1249 2.1465 2.1681 2.1898
57 至 63 列
2.2114 2.2330 2.2547 2.2763 2.2979 2.3196 2.3412
64 至 70 列
2.3628 2.3845 2.4061 2.4277 2.4494 2.4710 2.4926
71 至 77 列
2.5143 2.5359 2.5575 2.5792 2.6008 2.6224 2.6441
78 至 84 列
2.6657 2.6873 2.7089 2.7306 2.7522 2.7738 2.7955
85 至 91 列
2.8171 2.8387 2.8604 2.8820 2.9036 2.9253 2.9469
92 至 98 列
2.9685 2.9902 3.0118 3.0334 3.0551 3.0767 3.0983
99 至 100 列
3.1200 3.1416
三、结构矩阵 struct
>> a(1).x1=1;a(1).x2='li';a(1).x3=[1,2;3,4]
>> a(2).x1=2;a(2).x2='wang';a(2).x3=[-1,2;3,4]
添加了一个结构矩阵a,类似结构体,里面x1,x2,x3是结构体变量
四、单元矩阵 cell
直接输入>> b={1,'li',[1,2;3,4];2,'wang',[-1,2;3,4]}
不过这边要用大括号{}
直接出来一个矩阵,不是结构体
输出变量结果:
b =
2×3 cell 数组
{[1]} {'li' } {2×2 double}
{[2]} {'wang'} {2×2 double}
矩阵套矩阵,但他不是分块矩阵
五、对矩阵中的元素进行操作
1、引用下标 A(行,列) 先行后列,而且不是从零开始
eg:
>> c=[1,2;3,4]
c =
1 2
3 4>> c(10,10)=100 这里是把100赋值给C_10,10
c =
1 2 0 0 0 0 0 0 0 0
3 4 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 100 行列自动扩展
2、引用序号 A(n)
设有m行n列矩阵A(m,n),A(i,j) 等价于 A(N),其中N=(j-1)*m+i
3、获得子矩阵
用冒号表达式获得子矩阵:A(e1:e2:e3,e1:e2:e3),e2可省略
获得第e1列向量:A(:,e1)行向量类似
eg.
>> A(1:3,1:3)
ans =
1 2 3
4 5 6
7 8 9>> A(1:2,1:3)*2
ans =
2 4 6
8 10 12
end运算符:取随后(一行的行号或者一列的列号)