我想将函数应用于矩阵的每个元素.我用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
Run Code Online (Sandbox Code Playgroud)
您实际显示的所有操作都已经在矩阵上运行(逐个元素),但*矩阵乘法除外,您需要.*执行逐元素乘法.
W = sign(W) .* max(abs(W) - lambda, 0);
Run Code Online (Sandbox Code Playgroud)