看看我的MATLAB程序哪里出错了?

问题描述:

看看我的MATLAB程序哪里出错了?
程序如下:
function yp=zhendong(t,y)
global b w w1 h;
yp=[y(2);-2*b*y(2)-w~2*y(1)+h*cos(w1*t);
clear all
global b w w1 h;
h=0.4;A=0.2;w=0.3*pi;k=[0.1:0.01:2];
w10=k*w;
b1=[0.1:0.1:0.4];tspan=[0 100];y0=[A;0];
options=odeset('Reltol',1e-6,'Abstol',1e-6);
for nb1=1:length(b1)
b=b1(nb1);
for nw1=1:length(w10)
w1=w10(nw1);
[t,y]=ode45('zhendong',tspan,y0,options);
A(nb1,nw1)=max(y(:,1));
end
end
subplot(2,1,1);plot(t,y(:,1));
subplot(2,1,2);plot(k,A);
错误如下:
function yp=zhendong(t,y)
|
Error:Function definitions are not permitted at the prompt or in scripts.
1个回答 分类:综合 2014-12-03

问题解答:

我来补答
matlab函数不能在命令窗口进行定义,需要重新建立M文件来定义函数.
再问: 我试了,不行呀!怎么弄呢?
再答: 首先在命令窗口中输入edit,建立一个新m文件,将你建立的函数定义文件全部放进去,并保存。记住,千万不要把调用语句放进去。然后把调用语句放到matlab命令窗口中运行 function yp=zhendong(t,y) global b w w1 h; yp=[y(2);-2*b*y(2)-w^2*y(1)+h*cos(w1*t)]; end 这个为定义文件,然后把它保存到当前路径下,然后将 >> clear all global b w w1 h; h=0.4;A=0.2;w=0.3*pi;k=[0.1:0.01:2]; w10=k*w; b1=[0.1:0.1:0.4];tspan=[0 100];y0=[A;0]; options=odeset('Reltol',1e-6,'Abstol',1e-6); for nb1=1:length(b1) b=b1(nb1); for nw1=1:length(w10) w1=w10(nw1); [t,y]=ode45('zhendong',tspan,y0,options); A(nb1,nw1)=max(y(:,1)); end end subplot(2,1,1);plot(t,y(:,1)); subplot(2,1,2);plot(k,A); 粘贴到命令窗口敲enter键,就可以出图形了。 注意:你自己程序中函数定义文件中有两个小错误,一:少了半个方括号;二:指数符号是^,不是~
 
 
展开全文阅读
剩余:2000
上一页:不是奥数题