2012-12-18 47 views
3

一如既往,我意識到這是一個簡單的問題,但是對於Octave的力量來說相對較新,我正在努力讓自己的頭腦解決這個問題。我有一個單元格數組A,其中包含矢量。我希望從每個向量中刪除最後兩個值,最後將另一個單元格數組中包含的向量附加到每個向量中。下面是一個小例子:如何在包含在單元陣列中時刪除矩陣行?

A = {[1 2 11 12] [1 2 11 12] [1 2 11 12]} 
A = 
{ 
[1,1] = 
     1  2  11  12 
[1,2] = 
     1  2  11  12 
[1,3] = 
     1  2  11  12 
} 
B = {[3 4 5] [3 4 5] [3 4 5]} 
B = 
{ 
[1,1] = 
     3  4  5 
[1,2] = 
     3  4  5 
[1,3] = 
     3  4  5 
} 

因此我想結束了:

C = 
{ 
[1,1] = 
     1  2  3  4  5 
[1,2] = 
     1  2  3  4  5 
[1,3] = 
     1  2  3  4  5 
} 

任何指針文檔這一等將是巨大的。

謝謝,馬特

回答

3

使用cellfun

C = cellfun(@(x, y) [x(1:end-2) y], A, B, 'UniformOutput', false); 
+2

+1:只是打字一樣的東西! –

+1

@ user1912925另外,如果所有單元格包含相同數量的元素,請考慮使用矩陣。操縱起來要容易得多。 –

+1

謝謝,我會嘗試。 @EitanT使用單元陣列的原因有兩個:1)它是數據加載循環的產物(我被告知單元陣列對此最好); 2)數據具有可變大小的元素,否則爲你說矩陣會更合適。 – user1912925