当前位置:编程学习 > Matlab >>

下面的matlab程序错误在哪里?怎么不运行?

clear f=imread('w2.bmp'); I2=imnoise(f,'salt & pepper'); imshow(I2);title('噪声图像'); PQ=paddedsize(size(I2)); [U,V]=dftuv(PQ(1),PQ(2)); D=sqrt(U.^2+V.^2); D0=0.05*PQ(2); F=fft2(f,PQ(1),PQ(2)); H=exp(-(D.^2)/(2*(D0^2))); g=dftfilt(f,H); figure, imshow(ifftshift(H),[]) figure,imshow(log(1+abs(ifftshift(F))),[]) figure, imshow(g,[ ])
追问:你能告诉我可以执行的正确程序吗?
答案:试试看下面这个函数,把这个存成paddedsize.m文件,就可以调用了
function [PQ,n]=paddedsize(AB,CD,PARAM) 
n=nargin; 
if nargin==1 
    PQ=2*AB; 
elseif nargin==2 & ~ischar(CD); 
    PQ=AB+CD-1; 
    PQ=2*ceil(  PQ/2); 
elseif nargin==2 
    m=max(AB); 
   P=2^nextpow2(2*m); 
   P=[P,P]; 
elseif nargin==3 
    m=max([AB,CD]); 
    P=2^nextpow2(2*m); 
    PQ=[P,P]; 
else 
    error('wrong number of inputs') 
end
其他:paddedsize这个函数我这里没有定义,没法运行! 
假如A、B是一个矩阵:
A=[3 4; 5 6];
B=[5 4; 3 2];
C=A>B

那么 A>B 返回的值也是一个矩阵,值为对应元素的比较结果,大于返回1,小于返回0
所以结果为:
C =
     0     0
     1     1 


除非C矩阵全部为1, if里的语句才会执行!
不知道说明白否? 

上一个:Matlab中可以查看newpnn函数的源代码吗?如果可以怎么看?
下一个:基于MATLAB平台的高程控制网平差软设计谁会啊,给个小程序就行,间接平差的

CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,