繁体   English   中英

在MATLAB中绘制时间图

[英]Plotting time graph in MATLAB

我在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;

现在,我应该如何计划这个时间。 我尝试定义时间向量,然后使用它,但是很明显我收到了错误消息,指出矩阵尺寸不一致。 有人可以给我一个建议吗?

您可能可以采用矢量化的方式进行此操作,但是如果您不担心速度或简洁的代码,为什么不编写一个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值。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM