现在大三,物理专业对科学计算要求越来越多。特别是我以后很可能把计算物理作为自己的研究方向,所以学一门计算软件是很有必要的。想了很久,就学Matlab,一门心思的把这个学好。
刚开始学,今天学了几个matlab数组处理基本命令:
1、cat
C = cat(dim, A, B)沿着dim方向(维度)将数组A和B连接起来
2、repmat
复制并堆砌数组。例:
B = repmat(eye(2),3,4) %Replicate Matrix 垂直方向堆3个,水平方向堆4个
B = repmat(eye(2),3,4) %Replicate Matrix 垂直方向堆3个,水平方向堆4个
B =
1 0 1 0 1 0 1 0 0 1 0 1 0 1 0 1 1 0 1 0 1 0 1 0 0 1 0 1 0 1 0 1 1 0 1 0 1 0 1 0
0 1 0 1 0 1 0 1
3、reshape
修改数组大小,B = reshape(A,m,n,p,...),A表示呆重组的矩阵,后面的输入参数则表示数组各维的维度,例:
4、magic,例:
magic(3)
ans =
8 1 6
3 5 7
4 9 2
5、gallery,暂时还不懂这个
6、diag:选取矩阵对角线的数组;也可以由某个数组来创建矩阵,例:
a=[1 2 3]; b=diag(a) b =
1 0 0
0 2 0
0 0 3
7、(1)fliplr:左右对称交换数组元素,例:
a=[1 2 3;4 5 6;7 8 9];
fliplr(a)
ans =
3 2 1
6 5 4
9 8 7
(2)flipud:上下对称交换数组元素
flipud(a)
ans =
7 8 9
4 5 6
1 2 3
(3)rot90:将矩阵逆时针旋转90度
rot90(a)
ans =
3 6 9
2 5 8
1 4 7
8、tril:取下三角矩阵
triu: 取上三角矩阵
9、Kronecker乘法:
K= kron(X,Y)returns the Kronecker tensor product ofXandY.The result is a large array formed by taking all possible productsbetween the elements ofXand those ofY.IfXism-by-nandYisp-by-q,thenkron(X,Y)ism*p-by-n*q.例:
IfXis 2-by-3, thenkron(X,Y)is
[ X(1,1)*Y X(1,2)*Y X(1,3)*Y X(2,1)*Y X(2,2)*Y X(2,3)*Y ]10、flipdim(A,kmatlab二进制字符串转数组):数组的对称交换,k指的是对称面11、shiftdim:维序号移动,例:
>> data
data =
1 2 3 4
5 6 7 8
9 10 11 12
>> a=reshape(data,2,2,3)
a(:,:,1) =
1 9
5 2
a(:,:,2) =
6 3
10 7
a(:,:,3) =
11 8
4 12
>> b=shiftdim(a,2)
b(:,:,1) =
1 5
6 10
11 4
b(:,:,2) =
9 2
3 7
8 12
shiftdim(A,1)使A的维号左移1位,就是第2维变第1维,第3维变第2维,第1维变最后维。A是2*2*3的矩阵,Adim就是2*3*2的矩阵,并且有A(1,2,3)=Adim(2,3,1),A(1,2,1)=Adim(2,1,1),以此类推
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论