2011-06-02 85 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