Scilab错误10000

时间:2014-04-19 18:03:56

标签: scilab

嗨,我是scilab的新手,没有太多的数学背景。 我一直在关注另一个例子的代码,并为以下代码显示错误10000:

function [z]=f(x,y)
    z=0.026*(1.0-(y/ym))*y;
endfunction;

ym=12000;
x0=1950;y0=2555;xn=5;h=10;

x=[x0:h:xn];

y=ode("rk",y0,x0,x,f);

disp("x      y")
disp("--------")
disp([x'y']);

function z=fe(x)
z=ym/(1-(1-ym/y0)*e^(-k*(t-t0)));
endfunction;

xe=(x0:h/10:xn);

n=length(xe)
for i=1:n
    ye(i)=fe(xe(i));
end;

plot (x,y,'ro',xe, ye,'-b');legend ('rk4','Exact',3);
xtitle('solving dy/dx=k(1-y/ym)y','x','y');

我已经完成了其他一些错误消息。我迷路了,不知道问题是在代码中还是我设置问题的方式。以下是当前的错误消息:

!--error 10000 
plot: Wrong size for input argument #2: A non empty matrix expected.
at line      57 of function checkXYPair called by :  
at line     235 of function plot called by :  
plot (x,y,'ro',xe, ye,'-b');legend ('rk4','Exact',3);
at line      25 of exec file called by : 

我将不胜感激任何帮助。 感谢

1 个答案:

答案 0 :(得分:0)

首先添加clear作为第一个语句,这将在运行函数之前清除所有变量。在上面的脚本中,您不会声明ye

x=[x0:h:xn];x0h的值,xn语句也很奇怪。您现在正在尝试从1950年开始获取x值列表,并且正向步长为10,直到达到5。

我建议尝试每一行,看看结果是否符合预期。您不需要知道有关代码的所有内容,但可能x和y应至少包含一些值。该错误告诉您它期望参数2的非空矩阵。这是y,所以基本上它告诉您y为空。