2012-04-02 287 views
0

我想有一個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

回答

1

這可能與Matlab的數組迭代,如果我正確地理解你的問題可以解決像

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

+1

如果您不瞭解評論,請不要回答。 – 2012-04-02 15:45:53

0

由於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中的輸出。