Nav
Nav

Reputation: 20658

Delete a cell array column

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.

Upvotes: 3

Views: 12476

Answers (3)

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é

Upvotes: 1

Andrew Janke
Andrew Janke

Reputation: 23848

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

model(:,2) = [];

Upvotes: 10

ascanio
ascanio

Reputation: 1526

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

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

Upvotes: 1

Related Questions