2016-11-09 73 views
0

我已經創建了一個尺寸爲1x10的單元數組,名爲A.每個元素都包含一個100x5的矩陣。因此,我得到了10個矩陣100x5。但是,我想將單元陣列的每個矩陣放入一個循環中。如果B是100x5矩陣,C是100X1矢量和c是常數,環路應該看起來像:如何從循環中的單元陣列元素中減去矩陣?

for t=1:100; 
    j=1:5; 
     x=c*inv((B(t,j)-A(t,j))*((B(t,j)-A(t,j))')*(A(t,j)-C(t,1)*ones(1,5)); 
    end; 
end; 

在結束x應遞送1×10單元陣列將包含的矩陣100x5 10個元素。

我將不勝感激任何幫助。先謝謝你!

+1

因爲'A'是一個單元陣列,你不應該在那裏引用單元格A {k}嗎?發佈一個「A」,「C」,「B」,「C」的工作示例以及您正在嘗試解決的問題的數學表達式也很有幫助。 –

+0

所以你說它應該是這樣的:對於t = 1:100; j = 1:5; (B(t,j)-A {k(t,j)})*((B(t,j)-A {k(t,j)})')*(A {k(t,j)} -C(t,1)* ones(1,5)); end; end; – user7137145

回答

0

如果我正確理解你的問題,你在問如何訪問單元陣列。讓i索引單元格數組。然後您可以通過調用A{i}訪問單元陣列的第i個條目。那麼你的代碼是:

for i=1:10 
    for t=1:100 
     j=1:5 
      x{i}=c*inv((B(t,j)-A{i}(t,j))*((B(t,j)-A{i}(t,j))')*(A{i}(t,j)-C(t,1)*ones(1,5)); 
     end 
    end 
end 

你可能要考慮你的問題,你能否在矩陣符號寫它消除了中間的兩個for循環。它看起來類似於最小二乘估計器,它是(X'X)^(-1)*X'y,但逐個元素的倒數將我拋棄。