如何在MATLAB中将函数应用于矩阵?

时间:2017-02-10 14:42:51

标签: matlab

我想将函数应用于矩阵的每个元素。我用for循环做。但由于速度对我来说至关重要,我想知道是否有人可以通过删除for循环来帮助我更快地加速它?

这是我的代码:

Nrow=size(W,1);
Ncol=size(W,2);

for R=1:Nrow
    for C=1:Ncol
        W(R,C)=(sign(W(R,C))) * (max((abs(W(R,C))- lambda),0));
    end
end

1 个答案:

答案 0 :(得分:5)

您实际显示的所有操作已经已经在矩阵上运行(元素方式),但*是矩阵乘法的例外情况除外希望.*改为执行element-wise multiplication

W = sign(W) .* max(abs(W) - lambda, 0);