【发布时间】:2016-11-03 02:52:52
【问题描述】:
我正在尝试编写一些代码来定位与矩阵中给定条目正交的元素。输出需要包括元素本身、它们的索引,并且算法也需要适用于边缘。例如,考虑
A = [ 1 2 5 6 7
2 3 1 6 9
3 6 7 8 1 ]
然后如果我想要与条目 (2,2) 相邻的元素,代码将返回:
[2,2,1,6] %-> these elements are orthogonal to entry (2,2)
[w,x,y,z] %-> where w,x,y,z correspond to the index of the orthogonal entries
%found (they can be linear indices or otherwise).
所以我实现了自己的功能来做到这一点,而且我意识到它非常糟糕。它似乎并不能始终如一地适用于边缘(尽管我可以尝试填充矩阵并查看是否可以修复它 - 我还没有机会),而且重要的是,我的代码在整个该死的矩阵上循环。所以它的效率很低。我想知道是否有人有一种快速、有效的方法来做我上面概述的事情? MATLAB 似乎没有执行此操作的函数——我已经检查过了。
非常感谢您的帮助。
【问题讨论】:
-
我不明白为什么需要循环。为什么你不能使用基本的索引,只用几个 if 语句来捕捉边缘?
标签: arrays algorithm matlab matrix indexing