想用function处理矩阵参数,遇到问题:
输入参数:
h=3.5;
sm=20;
xxx=0:sm-1;
yyy=sm-1:-1:0;
[xx,yy]=meshgrid(xxx,yyy);
X(:,:)=xx;
Y(:,:)=yy;
Function为:
function [Dx1,Dy1,Dr1]= Weight(X,Y,sm,h)
dX=zeros(sm,sm); %input sm
dY=zeros(sm,sm);
DX=zeros(sm,sm,sm,sm);
DY=zeros(sm,sm,sm,sm);
for i=1:sm
for j=1:sm
for m=1:sm
for n=1:sm
dX(m,n)=X(m,n)-X(i,j); %---input X
dY(m,n)=Y(m,n)-Y(i,j); %---input Y
DX(m,n,i,j)=dX(m,n);
DY(m,n,i,j)=dY(m,n);
DR(m,n,i,j)=sqrt(DX(m,n,i,j)^2 + DY(m,n,i,j)^2);
if DR(m,n,i,j)>=h
Dx1(m,n,i,j)=0;
Dy1(m,n,i,j)=0;
Dr1(m,n,i,j)=0;
else
Dr1(m,n,i,j)=-exp(-DR(m,n,i,j)^2/(h^2))/(pi*h^4);
Dx1(m,n,i,j)=exp(-DR(m,n,i,j)^2/(h^2))*(-2*DX(m,n,i,j)/(pi*h^4));
Dy1(m,n,i,j)=exp(-DR(m,n,i,j)^2/(h^2))*(-2*DY(m,n,i,j)/(pi*h^4));
end
end
end
end
end
end
总是显示: function 输入参数的数目不足
不清楚出了什么问题,还是忽略了什么信息。请各位赐教 谢谢。
输入参数:
h=3.5;
sm=20;
xxx=0:sm-1;
yyy=sm-1:-1:0;
[xx,yy]=meshgrid(xxx,yyy);
X(:,:)=xx;
Y(:,:)=yy;
Function为:
function [Dx1,Dy1,Dr1]= Weight(X,Y,sm,h)
dX=zeros(sm,sm); %input sm
dY=zeros(sm,sm);
DX=zeros(sm,sm,sm,sm);
DY=zeros(sm,sm,sm,sm);
for i=1:sm
for j=1:sm
for m=1:sm
for n=1:sm
dX(m,n)=X(m,n)-X(i,j); %---input X
dY(m,n)=Y(m,n)-Y(i,j); %---input Y
DX(m,n,i,j)=dX(m,n);
DY(m,n,i,j)=dY(m,n);
DR(m,n,i,j)=sqrt(DX(m,n,i,j)^2 + DY(m,n,i,j)^2);
if DR(m,n,i,j)>=h
Dx1(m,n,i,j)=0;
Dy1(m,n,i,j)=0;
Dr1(m,n,i,j)=0;
else
Dr1(m,n,i,j)=-exp(-DR(m,n,i,j)^2/(h^2))/(pi*h^4);
Dx1(m,n,i,j)=exp(-DR(m,n,i,j)^2/(h^2))*(-2*DX(m,n,i,j)/(pi*h^4));
Dy1(m,n,i,j)=exp(-DR(m,n,i,j)^2/(h^2))*(-2*DY(m,n,i,j)/(pi*h^4));
end
end
end
end
end
end
总是显示: function 输入参数的数目不足
不清楚出了什么问题,还是忽略了什么信息。请各位赐教 谢谢。