Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/user-interface/2.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
Arrays 返回不带';在matlab中不包含所有零_Arrays_Matlab_Plot_Find_Cell Array - Fatal编程技术网

Arrays 返回不带';在matlab中不包含所有零

Arrays 返回不带';在matlab中不包含所有零,arrays,matlab,plot,find,cell-array,Arrays,Matlab,Plot,Find,Cell Array,我有一个包含许多单元格的单元格数组,每个单元格有50个值。这些单元格要么全部为零,要么是其他数字的组合 我正在寻找一种方法来找出哪些单元格没有全零,因为我想在一个图表中绘制这些单元格。如果我尝试绘制单元数组中的所有单元,这对matlab来说太难处理了。理想情况下,我会得到一个列表,例如,a{1},a{53},a{235},等等,它们不是全部由零组成的 在这里查看时,我发现了如何在数组或矩阵中查找非零值,但我没有看到任何关于查找具有非零值的单元格的内容 非常感谢您的帮助 如果单元格包含100个单元

我有一个包含许多单元格的单元格数组,每个单元格有50个值。这些单元格要么全部为零,要么是其他数字的组合

我正在寻找一种方法来找出哪些单元格没有全零,因为我想在一个图表中绘制这些单元格。如果我尝试绘制单元数组中的所有单元,这对matlab来说太难处理了。理想情况下,我会得到一个列表,例如,a{1},a{53},a{235},等等,它们不是全部由零组成的

在这里查看时,我发现了如何在数组或矩阵中查找非零值,但我没有看到任何关于查找具有非零值的单元格的内容


非常感谢您的帮助

如果单元格包含100个单元格x 50行,为什么不将其转换为双矩阵?因为根据你的问题,所有的值都是双精度的,只有数字

首先让你的手机加倍:

    m=zeros(size(a,1),size(a,2));
    m=str2double(a);
% from https://www.mathworks.com/matlabcentral/answers/18509-cell-conversion-to-double
%Then you can just convert 0's to NaN's and plot all freely
   m(m==0) = NaN;

让我们考虑例子数据

a=[{randi(10,1,50)} {randi(10,1,50)} {zeros(1,50)} {randi(10,1,50)}]
然后,您可以找到不完全包含零的单元格索引,如下所示:

nonzeroind=find(~cellfun(@(x) all(x==0),a))
nonzeroind=find(~cellfun(@(x) all(all(x==0)),a))
如果存储在单元格中的矩阵具有多个非单体维度,则必须应用
all
的次数与最高维度单元格中的维度相同,如下所示:

nonzeroind=find(~cellfun(@(x) all(x==0),a))
nonzeroind=find(~cellfun(@(x) all(all(x==0)),a))

存储在单元格中的矩阵的大小与此方法无关。

您好,非常感谢您抽出时间来帮助我。当我应用nonzeroind=~cellfun(@(x)all(x==0),a)时,我得到的所有单元格都是零。我知道我的单元格数组有一些非零值的单元格,所以我不确定发生了什么。你知道我在这里遗漏了什么吗?非常感谢@这很奇怪,因为它适用于我的示例数据。你能将你的变量保存在一个.mat文件中并上传到你的问题中吗?还要注意,我添加了
find
,以将逻辑输出转换为线性索引。