Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/matlab/14.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中删除单元中的元素_Matlab - Fatal编程技术网

在Matlab中删除单元中的元素

在Matlab中删除单元中的元素,matlab,Matlab,在矩阵中,要删除第一行元素为0的列,我们可以使用: ind2remove = (A(1,:) == 0); A(:,ind2remove) = []; 如果A是一个单元格,我该怎么做?我想删除第一行元素为0的列 我试过: ind2remove = (A{1,:} == 0); A{:,ind2remove} = []; 但我得到了错误信息: ??? Error using ==> eq Too many input arguments. Error in ==> ind2rem

在矩阵中,要删除第一行元素为0的列,我们可以使用:

ind2remove = (A(1,:) == 0);
A(:,ind2remove) = [];
如果
A
是一个单元格,我该怎么做?我想删除第一行元素为0的列

我试过:

ind2remove = (A{1,:} == 0);
A{:,ind2remove} = [];
但我得到了错误信息:

??? Error using ==> eq
Too many input arguments.

Error in ==> ind2remove = (A{1,:} == 0);

使用
{}
进行索引将提供单元格的内容,而使用
()
进行索引将返回与原始对象相同的类型,即,如果
A
是单元格,
A{i,j}
将返回它所保存的内容,
A(i,j)
将始终返回单元格。你需要后者

因此,在您的情况下,您可以执行以下操作来消除第一行中包含
0
的所有列

A(:, cellfun(@(x)x==0, A(1,:))) = [];

这里的假设是,根据您的注释,第一行中的每个单元格仅包含一个数字元素。

一个单元格可以包含不同的数据类型。你的手机看起来怎么样?每个单元格中是否只有一个元素(数字)?答案很简单,但我想要一个数据示例。@yoda:单元格A的第一行包含数值,第二行包含矩阵