【问题标题】:MATLAB cell array - strange behaviour with find in cell arrayMATLAB 元胞数组 - 在元胞数组中查找的奇怪行为
【发布时间】:2014-11-12 18:55:18
【问题描述】:

我在 MATLAB 中有一个行为很奇怪的元胞数组。我有 104 个单行向量作为单元格存储,范围从 80 到 344 个元素。结果,我有一个 104 x 344 单元阵列,称为 z。每个元素中都有一个数值。我试图找到这个数组中所有单元格的位置,这些单元格位于某些值之间,比如 524 和 528。为此,我使用了以下内容;

index = find([z{:}] >= 524 & [zp{:}] <= 528 )

这会返回一个索引位置列表,最初看起来是合理的,但奇怪的是,当我评估它们时,我得到了一些非常奇怪的行为;我试试

z{index}

它会在这些位置吐出一些值 - 但并非所有值都在 524 和 528 之间;有些明显高于或低于这些值。其他人仍然返回 [],即 0 x 0 数组。也许我对这样一个棘手的单元格数组使用了 find wrong ,但这种行为肯定不是我所期望的。有任何想法吗?

【问题讨论】:

  • 你能告诉我们zp是什么吗?
  • 抱歉,应该是 z 而不是 zp!

标签: arrays matlab find cell-array


【解决方案1】:

如果 z 包含空值,则不能使用从数组 [z{:}] 计算的索引。当您执行 [z{:}] 时,将删除空值。您需要将 [z{:}] 保存在另一个变量中并对其进行索引。

y = [z{:}];
index = find(y >= 524 & y <= 528 )
y(index)

【讨论】:

  • 完美运行。谢谢!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-04-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-10-27
  • 2014-07-10
  • 2011-02-07
相关资源
最近更新 更多