Удалить столбец массива ячеек

Поместил простые значения в массив ячеек для тестирования.

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

Я хотел такой результат:

темп =

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

Но я получаю это:

темп =

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

Как я могу сделать это правильно?

p.s: для тех, кто работает с массивами ячеек, есть хороший способ добавления здесь.


person Nav    schedule 02.06.2011    source источник


Ответы (3)


Вы можете изменить форму или удалить сами ячейки, используя ()-адресацию.

model(:,2) = [];
person Andrew Janke    schedule 02.06.2011
comment
ЭТО ОЧЕНЬ КРУТО!!!! Я люблю гения, который сделал MATLAB таким элегантным! - person Nav; 02.06.2011
comment
Это должен быть доктор Клив Молер, первоначальный автор Matlab. :) en.wikipedia.org/wiki/Cleve_Moler - person Andrew Janke; 22.03.2014

Вы должны переставить две части и изменить некоторые скобки:

temp= [{ model{:,1:i-1}}' {model{:,i+1:size(model,2)}}']
person ascanio    schedule 02.06.2011
comment
это не работает, если у вас есть более одного столбца до или после удаляемого - person Diederick C. Niehorster; 07.01.2014

есть функция fun_removecellrowcols, которая удаляет определенные строки/столбцы, указанные пользователем. Это влияет на размеры ячейки из-за удаления строк/столбцов.

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

С уважением, Хосе

person José Crespo Barrios    schedule 25.04.2014