MATLAB:我想基于矢量中的阈值来阈值矩阵,而不需要for循环.可能?

Spa*_*cey 2 indexing matlab matrix find

我们说我有以下内容:

M = randn(10,20);
T = randn(1,20);
Run Code Online (Sandbox Code Playgroud)

我希望M通过每个条目对每列的阈值进行阈值处理T.例如,查找所有元素的所有指标M(:,1)都大于T(1).查找所有元素的所有标记,M(:,2)大于T(2)等等.

当然,我想在没有for循环的情况下这样做.这可能吗?

小智 5

你可以bsxfun像这样使用:

I = bsxfun(@gt, M, T);
Run Code Online (Sandbox Code Playgroud)

然后I将是一个size(M)与其中的一个逻辑矩阵M(:,i) > T(i).

  • `arrayfun`,`cellfun`,`bsxfun`和`spfun`都是允许你做一些非常有趣的操作的函数来代替可怕的for-loop (2认同)