MATLAB: заменить столбец в массиве ячеек на NaN - PullRequest
0 голосов
/ 31 января 2019

У меня есть массив ячеек 3x2 data, где каждая ячейка содержит двойную матрицу.Это выглядит примерно так:

{600x4 double} {600x4x3 double}
{600x4 double} {600x4x3 double}
{600x4 double} {600x4x3 double}

Теперь я хотел бы заменить второй столбец массива ячеек на NaN.Поэтому результат должен выглядеть следующим образом:

{600x4 double} {[NaN]}
{600x4 double} {[NaN]}
{600x4 double} {[NaN]}

Использование фигурных скобок ни к чему не приведет.

data{:,2} = nan
Expected one output from a curly brace or dot indexing expression, but there were 3 results.

Я думаю, что я мог бы использовать cellfun или простой цикл for для изменениязначения до NaN.Тем не менее, я хотел бы знать, есть ли более простое решение?

1 Ответ

0 голосов
/ 31 января 2019

Вы можете использовать это

data(:,2) = {NaN};

Логика:

% Assign all values in the 2nd column of the cell ...
% All elements should be the single cell {NaN};

Вы можете сделать это альтернативно (немного более четкая логика)

data(:,2) = repmat( {NaN}, size(data,1), 1 ); % Right hand side is same height as data

Или даже это!

data(:,2) = num2cell( NaN(size(data,1), 1 ) );
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...