【问题标题】:Check if an index exist in the matrices in matlab检查matlab矩阵中是否存在索引
【发布时间】:2017-04-11 09:18:03
【问题描述】:

假设我有一个像下面这样的矩阵

m =
1 3 4 5 7
8 3 6 9 1
9 1 4 2 0

现在我想检查索引 m(18) 是否存在,在这种情况下显然不存在。但是我如何在 MATLAB 中检查它?

【问题讨论】:

  • 线性化矩阵,然后检查索引18处是否有元素?
  • MATLAB 本身会检查索引是否在有效范围内,如果没有显示错误消息
  • 但我需要检查,因为如果值不存在,我想应用一些函数...
  • 18 是行还是列?或者你是说在你的例子中 m(10) 是 1?
  • 使用 if 语句:index = 18; if index > numel(m); disp('ERROR');end

标签: matlab matrix indexing exception-handling indexoutofboundsexception


【解决方案1】:

当您尝试使用更大的索引并停止执行程序时,Matlab 显示错误“索引超出矩阵维度”。与其检查索引是否超出,不如开发一个解决方案来避免此错误。

通常,您在使用循环时可能会遇到此错误。您可以使用[m,n] = size(A)。 A矩阵的行数 m列数n。因此,您可以在索引时检测到您的限制。

可用于行的最大索引等于行数 m

可用于列的最大索引等于列数 n

【讨论】:

  • 超出的索引可能是设计的一部分。除非您知道他们为什么要这样做,否则您不应该判断...所以现在,让 OP 做他们想做的事。
猜你喜欢
  • 2013-05-28
  • 1970-01-01
  • 1970-01-01
  • 2013-09-13
  • 1970-01-01
  • 2015-02-09
  • 1970-01-01
  • 1970-01-01
  • 2018-03-26
相关资源
最近更新 更多