matlab说,“你读过书,……我便考你一考。fftshift的函数,怎样写的?”我想,讨饭同样的人,也配考我么?便回过脸去,再也不理会。matlab等了许久,很恳切的说道,“不能写罢?……我教给你,记着!这些代码未来作程序员的时候,前端要用。”我暗想我和程序员的等级还很远呢,并且前端历来用不到图像处理;又可笑,又不耐烦,懒懒的答他道,“谁要你教,不就是直接调用fftshift么?”matlab显出极高兴的样子,将两个指头的长指甲敲着柜台,点头说,“对呀对呀!……fftshift的代码有四样写法,你知道么?”我愈不耐烦了,努着嘴走远。matlab刚用指甲蘸了酒,想在柜上写代码,见我绝不热心,便又叹一口气,显出极可惜的样子。前端
type fftshift.m
直接看fftshift函数: [x, y] = size (V); xx = ceil (x/2); yy = ceil (y/2); retval = V([xx+1:x, 1:xx], [yy+1:y, 1:yy]);
+ 让咱们来运行对比一下:
+ ??结果居然不同,确定是Matlab暗改了!程序员
nd = ndims (x); sz = size (x); sz2 = ceil (sz ./ 2); idx = repmat ({':'},1,2); for i = 1:nd idx{i} = [sz2(i)+1:sz(i), 1:sz2(i)]; end retval = x(idx{:});
+ 相信本身,必定能成功!
+ 恶膜某蛤秒没命,必定是我太弱了,代码写错了!函数
nd=2; sz=size(I); n=floor(size(I)/2); idx = repmat ({':'},1,nd); for i = 1:nd; b=n(i); d=sz(i); if(b>0) b=rem(b,d); idx{i}=[d-b+1:d,1:d-b]; elseif(b<0) b=rem(abs(b),d); idx{i}=[b+1:d,1:b]; end end
+ 运行结果:
+ 是在哈输了!spa
sz = ceil(size(A)/2); A = A([sz(1)+1:end, 1:sz(1)], [sz(2)+1:end, 1:sz(2)]);
+ 打扰了: