当前位置: 首页 > 计算模拟 >请教MATLAB中下面的提示是什么意思?

请教MATLAB中下面的提示是什么意思?

作者 hailiang
来源: 小木虫 200 4 举报帖子
+关注

请教MATLAB中下面的提示是什么意思?

In an assignment  A(I) = B, the number of elements in B and I must be the same.

Error in hlduffing (line 5)
dy(2)=f*cos(0.8*t)-0.2*y(2)-y(1)-y(1)^3;

Error in odearguments (line 88)
f0 = feval(ode,t0,y0,args{:});   % ODE15I sets args{1} to yp0.

Error in ode45 (line 114)
[neq, tspan, ntspan, next, t0, tfinal, tdir, y0, f0, odeArgs, odeFcn, ...

Error in hltest2013 (line 7)
[t,y]=ode45('hlduffing',t0,[1;1]) 返回小木虫查看更多

今日热帖
  • 精华评论
  • libralibra

    CODE:
    In an assignment  A(I) = B, the number of elements in B and I must be the same.

    A(I) = B赋值时,I和B的长度必须相等
    不能把3个数赋值给2个数,也不能把2个数赋值给3个数,等等

  • hailiang

    麻烦帮我看看下面求解微分方程的程序问题出在哪?
    不对f循环的时候没有问题的,做循环就出问题了

    function dy = hlduffing(t,y)
    global f
    dy=zeros(3,1);
    dy(1)=y(2);
    dy(2)=f*cos(0.8*t)-0.2*y(2)-y(1)-y(1)^3;
    end


    function hlduffing1_bifur_f_getmax
    % 最大值法求解分岔图
    global f
    clear all
    t0=[0 100];%积分时间
    %bifurcation
    for f=linspace(10,32,1000);   %  f=10:32:1000;   %r的变化精度
        [t,y]=ode45('hlduffing',t0,[1;1]);
        [Xmax]=getmax(y(:,1));
        plot(f,Xmax,'k','markersize',1)
        hold on
        clear Xmax
    end,

  • somomo91

    这里有两个错误 :
    1. clear all 的位置
    它应该在程序的最上方,而在你的程序里,它在 global f 之后,这样运行到 clear all 之后,全局变量 f 会被删除,你的子程序就无法获得 f 的值了
    2. dy=zeros(3,1);
    子程序里面,dy 的预设的错误,你的程序假设它是 (2, 1) : dy(1) / dy(2), 但是在程序一开始,却执行 dy=zeros(3,1); 这样就会出现 长度错误,正确的应该是 dy=zeros(2,1);

    不过因为我没有你的 getmax 程序,无法运行,但是至少能解决你开始所提出的问题了

  • 小懒样

    你的问题解决没,不知阁下可不可以把你的程序借用一下,多谢

猜你喜欢
下载小木虫APP
与700万科研达人随时交流
  • 二维码
  • IOS
  • 安卓