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

 

posted @ 2016-09-29 14:36  牧马人夏峥  阅读(175)  评论(0编辑  收藏  举报