【发布时间】:2015-02-09 00:26:52
【问题描述】:
我想验证一个元素是否存在于 MATLAB 矩阵中。
一开始我是这样实现的:
if ~isempty(find(matrix(:) == element))
这显然很慢。因此,我改为:
if sum(matrix(:) == element) ~= 0
但这又很慢:我多次调用包含该指令的函数,每次都损失 14 秒!
有没有办法进一步优化这条指令?
谢谢。
【问题讨论】:
-
你可以试试
ismember,但我不确定它会更快。如果你的matrix是二维的,你也可以试试sum(sum(matrix==element)),这样可以避免使用(:)展开矩阵,可能会节省一点时间。 -
14 秒!你的矩阵有多大?它是双精度矩阵吗(
class(matrix)和class(element)是什么?)?
标签: performance matlab optimization