2011-06-02 86 views
3

將簡單值放入單元陣列中進行測試。刪除單元陣列

model{1,1}=1;model{1,2}=2;model{1,3}=3; 
model{2,1}=4;model{2,2}=5;model{2,3}=6; 
i=2;//I want to remove the second column 

temp={ model{:,1:i-1} model{:,i+1:size(model,2)} } 

我想這樣的結果:

TEMP =

[1] [3]  
[4] [6] 

但我發現了這一點:

TEMP =

[1] [4] [3] [6] 

我該如何解決這個問題?

p.s:對於在Cell Arrays工作的任何人,有一個很好的技術來追加here

回答

10

可以重塑或使用()-addressing刪除細胞本身。

model(:,2) = []; 
+1

是如此刻着」 COOL不起作用! !我非常喜歡設計MATLAB的天才,非常優雅! – Nav 2011-06-02 13:37:26

+0

這將是Matlab的原作者Cleve Moler博士。 :) https://en.wikipedia.org/wiki/Cleve_Moler – 2014-03-22 17:39:27

1

你要轉兩件,並改變一些括號:

temp= [{ model{:,1:i-1}}' {model{:,i+1:size(model,2)}}'] 
+0

感謝阿斯卡尼奧:) – Nav 2011-06-02 13:40:17

+0

,如果你之前或一前一後有一個以上的列刪除 – 2014-01-07 10:16:33