【问题标题】:How to find all values greater than 0 in a cell array in Matlab如何在Matlab的单元格数组中找到所有大于0的值
【发布时间】:2016-09-29 12:30:35
【问题描述】:

我想在一个数组中查找并保存所有大于 0 的值,并将它们保存在一个名为“times”的变量中。我怎么做?保存这些单元格的索引与单元格的实际值有什么区别?

这是我尝试过的,但必须佩戴它,因为我收到错误:

未定义的运算符“>”用于类型的输入参数 '细胞'。

clear all, close all

[num,txt,raw] = xlsread('test.xlsx');

times = find(raw(:,5)>0)

【问题讨论】:

  • raw 是什么样的?从错误中,尝试raw{:,5}
  • 感谢@HBHB!我接受了下面的答案,因为它更详细并作为答案发布。

标签: matlab operators cell-array


【解决方案1】:

要访问单元格的内容,您必须使用{} 而不是()

idx = find([raw{:, 5}] > 0);

但这会为您提供包含正值的raw 单元格的索引。如果您想要 ,您可以通过以下方式访问它们并将它们收集到一个数字数组中:

times = [raw{idx, 5}];

【讨论】:

    猜你喜欢
    • 2017-08-14
    • 2015-09-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-11-08
    • 2018-04-28
    相关资源
    最近更新 更多