Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/28.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
MATLAB:用NaN替换单元数组中的列_Matlab_Cell Array - Fatal编程技术网

MATLAB:用NaN替换单元数组中的列

MATLAB:用NaN替换单元数组中的列,matlab,cell-array,Matlab,Cell Array,我有一个3x2单元数组数据,其中每个单元包含一个双矩阵。它看起来像这样: {600x4 double} {600x4x3 double} {600x4 double} {600x4x3 double} {600x4 double} {600x4x3 double} {600x4 double} {[NaN]} {600x4 double} {[NaN]} {600x4 double} {[NaN]} 现在,我想用NaNs替换cell数组的第二列。因此,结果应如下所示: {600x4 doub

我有一个3x2单元数组
数据
,其中每个单元包含一个双矩阵。它看起来像这样:

{600x4 double} {600x4x3 double}
{600x4 double} {600x4x3 double}
{600x4 double} {600x4x3 double}
{600x4 double} {[NaN]}
{600x4 double} {[NaN]}
{600x4 double} {[NaN]}
现在,我想用NaNs替换cell数组的第二列。因此,结果应如下所示:

{600x4 double} {600x4x3 double}
{600x4 double} {600x4x3 double}
{600x4 double} {600x4x3 double}
{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
。但是,我想知道是否有更简单的解决方案?

您可以使用这个

data(:,2) = {NaN};
逻辑:

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

您也可以这样做(逻辑稍微清晰一点)


甚至这个

data(:,2) = num2cell( NaN(size(data,1), 1 ) );

另外,
[data{:,2}]=deal(NaN)
@Wolfie您的第一个建议是直截了当的。其实很容易;-)谢谢。@Luis该死的,我没法点击那个,我错过了
交易