学习触动和矩阵的维度问题
算一算,从第一页到第三十九页我看了4个小时,最大的感受是关于MATLAB的帮助文件的使用。MATLAB的学习者与c语言学习者相比更加的小众,因此许多东西你在网上是找不到
只能查帮助文件了,幸亏MATLAB提供极其详细的帮助文件。(但我渣渣的英语呀)
1:直接使用help命令:help 你所要查询的东西,但显示的东西比较粗略
2:在command界面输入helpdesk,弹出帮助导航窗口界面
3:在光标停在你想查询的东西上,按下F1,自动回弹出个简化的窗口,并提供并不简化的帮助
最后,我恨我渣渣的英语
矩阵的维度是我遇到的第一个知识点性的难题
线是一维的,面是二维,空间为三维,这是生活中的维度认识,而矩阵的一维,二维,三维则分别对应着列向量(表达可能有偏差),有行向量和列向量的矩阵,在二维矩阵的基础上再加Z的(像这样A[2][2][2])。
维度在计算中的使用,cat函数(连接两个的矩阵)cat(dim,A,B)。其中dim是个参数,他指明了如何生成新的矩阵和生成矩阵的性质
PS:
>> A = [1 2; 3 4];
>> B = [5 6; 7 8];
>> A
A =
1 2
3 4
>> B
B =
5 6
7 8
>> cat(1, A, B) %按列连接(列数相同),
ans =
1 2
3 4
5 6
7 8
>> cat(2, A, B) %按行连接(行数相同)
ans =
1 2 5 6
3 4 7 8
>> cat(3, A, B) %合成效果如下图
ans(:,:,1) =
1 2
3 4
ans(:,:,2) =
5 6
7 8
a = magic(3)
b = pascal(3)
k=1,合并后形如 [a;b],行添加矩阵(要求a,b的列数相等才能合并);
>> c = cat(1,a,b)
c =
8 1 6
3 5 7
4 9 2
1 1 1
1 2 3
1 3 6
k=2,合并后形如[a,b],列添加矩阵(要求a,b的行数相等才能合并)
>> c = cat(2,a,b)
c =
8 1 6 1 1 1
3 5 7 1 2 3
4 9 2 1 3 6
>> c = cat(3,a,b)
c(:,:,1) =
8 1 6
3 5 7
4 9 2
c(:,:,2) =
1 1 1
1 2 3
1 3 6
n维的矩阵合并,要求n-1维维数相等才可以.
>> c = cat(4,a,b)
c(:,:,1,1) =
8 1 6
3 5 7
4 9 2
c(:,:,1,2) =
1 1 1
1 2 3
1 3 6
类似的flipdim(A,dim)函数的翻转方向也是按照上述规则