
高分。Matlab编程问题 大神进。谢谢! [在线等]
这段程序哪里错了阿?刚刚接触不太懂。提示是Error:Functiondefinitionsarenotpermittedatthepromptorinscripts.哪...
这段程序哪里错了阿? 刚刚接触不太懂。
提示是Error: Function definitions are not permitted at the prompt or in scripts.
哪位大神帮我调试一下,谢谢!!
%主函数
function y=funmain[U,V,a,b];
A=zeros(b,a);
for k=1:b
for d=1:a
u=U(d); v=V(k);
A(k,d)=func(u,v);
end
end
y=A;
%子函数;
function Y=func(u,v)
m=0;
for t=1:400/u
r=0.08*((5-u)^3)/12+0.0016*u*t
m=m+r;
end
w=3.14*pi*((3*v/4/pi)^(1/3)-m)^3/3;
if v<=(5*10^5)
h=4;
else if v<=10^6
h=6.2;
else if v<=10^7
h=8;
end
end
end
z=0;
for t=1:400/u
r=0.08*((5-u)^3)/12+0.0016*u*t
n=0;
for k=1:t
n=n+r;
end
L=log10((3*v/4/pi)^(1/3)-n);
z=z+L;
end
s=(3*z-151/u)*7.2*u*(u+6)+400*h/u;
Y=s/w; 展开
提示是Error: Function definitions are not permitted at the prompt or in scripts.
哪位大神帮我调试一下,谢谢!!
%主函数
function y=funmain[U,V,a,b];
A=zeros(b,a);
for k=1:b
for d=1:a
u=U(d); v=V(k);
A(k,d)=func(u,v);
end
end
y=A;
%子函数;
function Y=func(u,v)
m=0;
for t=1:400/u
r=0.08*((5-u)^3)/12+0.0016*u*t
m=m+r;
end
w=3.14*pi*((3*v/4/pi)^(1/3)-m)^3/3;
if v<=(5*10^5)
h=4;
else if v<=10^6
h=6.2;
else if v<=10^7
h=8;
end
end
end
z=0;
for t=1:400/u
r=0.08*((5-u)^3)/12+0.0016*u*t
n=0;
for k=1:t
n=n+r;
end
L=log10((3*v/4/pi)^(1/3)-n);
z=z+L;
end
s=(3*z-151/u)*7.2*u*(u+6)+400*h/u;
Y=s/w; 展开
1个回答
展开全部
首先 你第一句后面不应该加 “;”
其次,你把子函数整个放在主函数的后面,别夹在中间,也就是这样:
function y=funmain[U,V,a,b]
....
end
function Y=func(u,v)
.......
end
另外,如果在子函数中用主函数中的变量(除以参数形式传入的外)应用global(全局)标记这些变量
希望对你有用
其次,你把子函数整个放在主函数的后面,别夹在中间,也就是这样:
function y=funmain[U,V,a,b]
....
end
function Y=func(u,v)
.......
end
另外,如果在子函数中用主函数中的变量(除以参数形式传入的外)应用global(全局)标记这些变量
希望对你有用
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询