3

Placed simple values into the cell array for testing.

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)}  }

I wanted a result like this:

temp =

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

But I'm getting this:

temp =

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

How can I get this right?

p.s: for anyone working on Cell Arrays, there's a nice technique for appending here.

Community
  • 1
  • 1
Nav
  • 19,885
  • 27
  • 92
  • 135

3 Answers3

10

You can reshape or delete the cells themselves using ()-addressing.

model(:,2) = [];
Andrew Janke
  • 23,508
  • 5
  • 56
  • 85
1

there is a function called fun_removecellrowcols, which removes specific row/columns indicated by the user. This affects the dimensions of the cell, due to the row/cols removal.

http://www.mathworks.com/matlabcentral/fileexchange/46196-fun-removecellrowcols

Regards, José

1

You have to transpose the two pieces, and change some parentheses:

temp= [{ model{:,1:i-1}}' {model{:,i+1:size(model,2)}}']
ascanio
  • 1,506
  • 1
  • 9
  • 18