Как назначить пустую матрицу для элементов массива ячеек в MATLAB? - PullRequest
3 голосов
/ 14 декабря 2009

Я хочу манипулировать массивом ячеек и сделать так, чтобы определенные индексы массива ячеек содержали пустую матрицу []. Я не могу понять, как это сделать:

>> yy=num2cell(1:10)

yy = 

  [1]    [2]    [3]    [4]    [5]    [6]    [7]    [8]    [9]    [10]

>> yy{1:2:end}=[]
??? The right hand side of this assignment has too few values to satisfy
 the left hand side.
>> yy(1:2:end) = []

yy = 

  [2]    [4]    [6]    [8]    [10]

Ба! Кажется, не могу делать то, что я хочу. Я хочу оставить пустые элементы в массиве ячеек, например

  []    [2]    []    [4]    []    [6]    []    [8]    []    [10]

Есть предложения? Мой индексный вектор может быть произвольным, и в форме индекса, или в логической форме, необязательно [1 3 5 7 9].

1 Ответ

7 голосов
/ 14 декабря 2009

Что вы можете сделать, это индексировать массив ячеек (не содержимое) с помощью () и изменить каждую ячейку на пустую ячейку {[]}:

yy(1:2:end) = {[]};

Альтернативой является использование функции DEAL , но она выглядит немного страшнее:

[yy{1:2:end}] = deal([]);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...