Matlab 2x2矩阵的阵列和逐元矩阵/向量乘法

问题描述:

我想有一个2x2复矩阵的时间序列,Ot,然后我想要有一行命令来乘以一个复数向量Vt的阵列,数组Ot在数组中的位置被理解为时刻。我想要Vtprime(i)= Ot(i)* Vt(i)。任何人都可以提出一个简单的方法来实现这个?假设我有一个矩阵M(t),其中元素m(j,k)是t的函数,t是某个序列(t = 0:0.1:3)的元素。我可以非常容易地创建一组矩阵吗?Matlab 2x2矩阵的阵列和逐元矩阵/向量乘法

我明白如何在Matlab中有一个数组,甚至是一个二维数组,其中每个“i”索引都包含两个复数(j = 0,1)。这将是一种“时间序列的复杂二维矢量”。有一个复杂矩阵的时间序列的方法将是一个三维数组。 (i,j,k)表示“第i个”矩阵,并且j = 0,1和k = 0,1给出该矩阵的元素。

如果我把脑袋当作一种编程语言来处理,而没有特殊的包,那么我最终不得不根据循环等方式编写矩阵乘法。然后,这将转向所有的矩阵运算。如果可以的话,我宁愿使用能使这一切变得非常简单的命令。

+0

问题很不清楚。什么是Ot的尺寸?它是2x2矩阵的**单元阵列**吗?什么是Vt和Vt的每个元素的类和维度? – yuk 2012-04-02 14:51:59

+0

你能否一次提出一个问题,具体一点? – 2012-04-02 15:45:29

这可能与Matlab的数组迭代,如果我正确地理解你的问题可以解决像

vtprime(:) = Ot(:)*Vt(:) 

+1

如果您不了解评论,请不要回答。 – 2012-04-02 15:45:53

由于Ot和Vt都随着时间索引而变化,我认为最好的方法是循环。 (如果只有OT或VT的一个随时间变化的,你可以在一个大的矩阵乘法设置。)

下面是我会设置它:OT是一个复杂的2x2xI 3D矩阵,使

Ot(:,:,i) 

在时刻i参考矩阵。

的Vt是一个复杂的2xI矩阵,使得

Vt(:,i) 

引用在时刻i中的向量。

要执行乘法:

for i = 1:I 
    Vtprime(:,i) = Ot(:,:,i) * Vt(:,i); 
end 

所得Vtprime是2xI矩阵设置,以便Vtprime(:,i)是在时刻i中的输出。