當前位置:編程學習大全網 - 編程軟體 - matlab編程程序,請大神看看哪裏有問題?

matlab編程程序,請大神看看哪裏有問題?

主要問題:

1、代碼本來應該分兩部分,都被混到壹起了。而且妳可能是直接在命令窗口中直接貼代碼運行,這對於函數而言是不允許的,應該保存成M文件再運行。

2、幾個低級錯誤:

(1)變量名錯誤:y=length(y);應為n=length(y);

(2)調用函數時參數數量錯誤:www(i,j)=cc(q,x(i),y(j),1.5,2.5,t,1);應為www(i,j)=cc(q,x(i),y(j),1.5,2.5,t);

(3)點乘缺少乘號:w=q./(pi*miu*sy*sz).exp(-(y.^2./(2*sy^2)+z.^2./(2*sz^2)));應為w=q./(pi*miu*sy*sz).*exp(-(y.^2./(2*sy^2)+z.^2./(2*sz^2)));

改後的代碼:

function?zd1668380218552966787

q=400000;

t=120;

x=linspace(0,50,100);

y=linspace(-50,50,100);

m=length(x);

n=length(y);

www=zeros(m,n);

for?i=1:m

for?j=1:n

www(i,j)=cc(q,x(i),y(j),1.5,2.5,t);

end

end

[X?Y]=meshgrid(x,y);

X=X*100;

Y=Y*100;

surf(X,Y,www')

function?w=cc(q,x,y,z,miu,t)

if?x>1000

a1=0.850834;

r1=0.602052;

else

a1=0.901074;

r1=0.425809;

end

if?x>500

a2=2.10881;

r2=0.000211545;

elseif?x>300&&x<500

a2=1.51360;

r2=0.00854771;

else

a2=1.12154;

r2=0.0799904;

end

sy=r1*x.^a1;

sz=r2*x.^a2;

if?0.5<t&&t<1

sy=r1*x.^a1*(2*t).^0.2;

sz=r2*x.^a2;

else

sy=r1*x.^a1*(2*t).^0.3;

sz=r2*x.^a2;

end

w=q./(pi*miu*sy*sz).*exp(-(y.^2./(2*sy^2)+z.^2./(2*sz^2)));

  • 上一篇:excel 中div0是什麽意思
  • 下一篇:最近總是彈出這個廣告 請問是什麽原因
  • copyright 2024編程學習大全網