matlab随笔(三)
把矩阵变成行向量(矩阵元素的排列是从上到下,从左到右):
1、先转置,转成行向量
A =
1 2 3
4 5 6
7 8 9
>> A=A'
A =
1 4 7
2 5 8
3 6 9
>> a=A(:)'
a =
1 2 3 4 5 6 7 8 9
2、reshape函数
A =
1 2 3
4 5 6
>> [m,n]=size(A)
A=A'
A =
1 4
2 5
3 6
>> A=reshape(A,1,m*n)
A =
1 2 3 4 5 6
循环移位
A =
1 2 3 4 5 6
>> m=0,n=1;
% %m向下,n向右,负号表示反向
%所以下式表示右循环一位
A=circshift(A,[m,n])
A =
6 1 2 3 4 5
读一张图片循环移位后显示
>> img=imread('0001.jpg'); >> img2=img(50:400,100:600); >> img2=img2'; >> img=imread('0001.jpg'); >> img2=img(50:400,100:600); >> [m,n]=size(img2); >> img2=reshape(img2,1,m*n); %右移15位 >> img3=circshift(img2,[0,15]); >> img4=reshape(img3,n,m); >> img4=img4'; >> imshow(img4) >> img4=img3'; >> img4=reshape(img4,m,n); >> imshow(img4) %右移30位 >> img4=circshift(img2,[0,30]); >> img4=img4'; >> img4=reshape(img4,m,n); >> imshow(img4) >> img3=circshift(img2,[0,-15]); >> img3=img3'; >> img3=reshape(img3,m,n); >> imshow(img3) %右移60位 >> img3=circshift(img2,[0,60]); >> img3=img3'; >> img3=reshape(img3,m,n);

浙公网安备 33010602011771号