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

时间:2017-02-02 04:46:09

标签: matlab matrix symbolic-math

我有一个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.1秒。

t = 0:0.1:50;

在C矩阵中,t现在是象征性的。它最初是作为许多变量的函数,但我使用subs()将它仅仅作为t的函数。我想要一个关于t的9个元素中的每个元素的图表。我该怎么做呢?一旦我指定了t,我认为它会非常简单,比如subs(C)或subs(C(1,1)),但结果却并非如此。

1 个答案:

答案 0 :(得分:2)

最好的方法是转换为函数句柄,并用元素模拟替换所有乘法运算。例如,如果要计算

的值
LayoutInflater.from(parent.getContext()).inflate(R.layout.dashboard_app_usage_layout, null, false);

对于向量private static int IMAGES_VISIBLE_TIME = 3000; int mImgsPosition = 0; Handler mHandlerImgsAnime; Timer swipeTimer; mHandlerImgsAnime = new Handler(); swipeTimer = new Timer(); swipeTimer.schedule(new TimerTask() { @Override public void run() { mHandlerImgsAnime.post(ViewPagerScroll); } }, IMAGES_VISIBLE_TIME, IMAGES_VISIBLE_TIME); Runnable ViewPagerScroll = new Runnable() { @Override public void run() { if (mImgsPosition == adaptersize) { mImgsPosition = 0; } viewpager.setCurrentItem(mImgsPosition++, true); } }; ,上述方法无效,因为它尝试进行矩阵乘法。要进行元素乘法和幂,请在运算符前加一个点,如

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) ] ,那么您可以将C写为函数句柄...

t

您现在可以尝试像这样评估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