我的 3x3 矩阵中的每个元素都是关于 t 的方程式。我如何根据时间绘制每个图?

Each element in my 3x3 matrix is an equation with respect to t. How do I plot each one with respect to time?

我有一个 3x3 矩阵:

C = [sin(t) cos(t)*4t^2 cos(t); cos(t) 5t^3 4*cos(t); t*tan(t) 4t^2*cos(t) 5sin(2*t)]

和一个指定的数组t,表示时间0到50秒,采样率为0.1s。

t = 0:0.1:50;

在 C 矩阵中,t 现在是符号化的。它开始是作为许多变量的函数,但我使用 subs() 将它变成了 t 的函数。我想要关于 t 的 9 个元素中的每一个的图表。我该怎么做呢?我以为它会很简单,就像 subs(C) 或 subs(C(1,1)) 一旦我指定了 t,但事实证明并非如此。

最好的方法是转换为函数句柄并将所有乘法运算替换为它们的逐元素类似物。例如,如果你想计算

的值
cos(t) * t^2 

对于向量t = 1:10,上面的方法将不起作用,因为它试图进行矩阵乘法。要进行逐元素乘法和幂运算,请在运算符前面放一个点,例如

cos(t) .* t.^2 

所以为了做你想做的事,把 C 写成一个向量(而不是矩阵)并确保你添加了必要的元素操作...

C = [ sin(t) ; cos(t).*4*t.^2 ; cos(t) ; cos(t) ; 5*t.^3 ; 4*cos(t) ; t.*tan(t) ; 4*t.^2.*cos(t) ; 5 *sin(2*t) ]

或者,如果您想在许多不同的行向量 t 上计算 C,那么您可以将 C 写成函数句柄...

C = @(t) [ sin(t) ; cos(t)*4.*t.^2 ; cos(t) ; cos(t) ; 5.*t.^3 ; 4*cos(t) ; t.*tan(t) ; 4*t.^2.*cos(t) ; 5 *sin(2*t) ]

您现在可以尝试像这样评估 C

C(1:10)

C(.1:.22:50)

并且输出的每一列将代表 C 的不同值 t。所以现在你可以做类似

plot(C(t))

plot(t,C(t))