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);