gpt4 book ai didi

科学实验室 "Warning adding a matrix with the empty matrix will give an empty matrix result."

转载 作者:行者123 更新时间:2023-12-04 17:13:30 25 4
gpt4 key购买 nike

  • 我是 Scilab 的新用户(另见 here)。
  • 我定义了一个简单的分段函数,并在使用该函数 ( "Warning adding a matrix with the empty matrix will give an empty matrix result." ) 时收到了一个令人困惑的警告。
  • 你看到我的错误在哪里了吗?
  • function  y = myTest(t) 

    // First Part
    y(find(t < 0)) = 0;

    // Middle Part
    y(find(0 <= t & t <= 1)) = 1;

    // Middle Part
    ti3 = find(1 < t & t <= 3);
    y(ti3) = -1*t(ti3) + 2;

    // Middle Part
    y(find(3 < t & t <= 4)) = -1;

    // Middle Part
    ti5 = find(4 < t & t <= 6);
    y(ti5) = +1*t(ti5) -5;

    // Middle Part
    y(find(6 < t & t <= 8)) = 1;

    // Last Part
    y(find(8 < t)) = 0;

    endfunction

    myTest(1)

    t = 0:0.1:10;

    plot(t',myTest(t))
    enter image description here
    (使用 myTest(t) 绘制 t = 0:0.1:10 。)
    enter image description here
    (令人困惑的警告。)

    最佳答案

    您必须删除 find()调用和使用逻辑索引(逻辑表达式产生与 t 大小相同的 bool 向量,可以用作索引):

    function  y = myTest(t) 

    // First Part
    y(t < 0) = 0;

    // Middle Part
    y(0 <= t & t <= 1) = 1;

    // Middle Part
    ti3 = 1 < t & t <= 3;
    y(ti3) = -1*t(ti3) + 2;

    // Middle Part
    y(3 < t & t <= 4) = -1;

    // Middle Part
    ti5 = 4 < t & t <= 6;
    y(ti5) = +1*t(ti5) -5;

    // Middle Part
    y(6 < t & t <= 8) = 1;

    // Last Part
    y(8 < t) = 0;

    endfunction

    myTest(1)

    t = 0:0.1:10;

    plot(t',myTest(t))
    但是,在阅读您在 StackExchange 上的帖子后,如果您的速度总是分段仿射,那么您可以使用 interpln ,可以进一步推导(参见 SO 其他帖子)或与 ode 集成:
    function out=rhs(t,y)
    out = interpln(ty,t);
    end

    ty=[0 1 3 4 6 8
    1 1 -1 1 1 0]
    t=linspace(0,8,1000);
    h=sqrt(%eps);
    d=(interpln(ty,t+h)-interpln(ty,t))/h;
    p=ode(0,0,t,rhs)
    plot(x,interpln(xy,x),x,d,x,p)
    odeinterpln scilab 帮助页面了解其参数的含义(如果上面不够明确)。
    enter image description here

    关于科学实验室 "Warning adding a matrix with the empty matrix will give an empty matrix result.",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69059832/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com