我想通过忽略零元素在矩阵上运行快速Matlab算法。执行公式忽略零元素
在过去,我只是用一个非常慢的double-for-loop例如
for i = 1 : size(x,1)
for j = 1 : size(x,2)
if x(i,j) ~= 0
... do something with x(i,j)
end
end
end
但我怎么能对整个矩阵X矩阵运算? 例如我怎样才能运行
x(i,j) = log(x(i,j)) if x>0 else 0 <-- pseudo code
在Matlab上的整个矩阵没有for循环?
最后,我想重写线,如
result = sum(sum((V.*log(V./(W*H))) - V + W*H));
与忽略零。
我只需要了解这个概念。 在需要的情况下,我也可以使用NaN而不是零,但我没有找到例如功能
nanlog()
你为什么要这么做?计算可能性? – AGS