首页 文章

在MATLAB中绘制时间图

提问于
浏览
1

我在MATLAB中有这种形式的功能,

C=S*e^(L*t)*inv(S)*C_0

在哪里我的

S=[-2 -3;3 -2] 
     L=[0.5 0; 0 1.5]
     C_0=[1; 1]

我需要根据时间绘制这个函数 . 我的输出C是一个2乘1的矩阵 .

我所做的是使用b = expm(L)分别计算e ^ L然后我将mpower(b,t)插入到函数中 . 所以我在脚本中生成的函数看起来像

b=expm(L);
  C=S*mpower(b,t)*inv(S)*C_0;

现在,我应该如何绘制这个w.r.t时间 . 我尝试定义时间向量然后使用它,但很明显我收到错误消息,表明矩阵维度不一致 . 有人可以给我一个建议吗?

1 回答

  • 0

    您可以以矢量化方式执行此操作,但如果您不担心速度或简洁代码,为什么不写一个 for 循环?

    ts = 1 : 100;
    Cs = zeros(2, length(ts) );
    
    S = [-2 -3;3 -2];
    L = [0.5 0; 0 1.5];
    C_0 = [1; 1];
    
    for ii = 1 : length(ts)
      b = expm(L);
      Cs(:,ii) = S*mpower(b,ts(ii))*inv(S)*C_0;
    end
    

    ts 包含时间值, Cs 每次包含 C 的值 .

相关问题