0

嘿,我在我的 matlab-mex 文件中有浮点问题,我得到的值在 10^(-12) 到 10^(-13) 之间......有没有一种“肮脏”的方法可以至少解决它们如果它们太小,在计算后将这些值设置为零?谢谢!

4

2 回答 2

2

如果它是一个数组,您可以执行以下操作:

small_inds = find(abs(array) < 10^-12);
array(small_inds) = zeros(length(small_inds),1);

(为清楚起见,经过编辑添加abs()——感谢 nimrodm)

于 2011-05-17T18:07:09.027 回答
1

不确定这是否是您要查找的内容(我想问题是您是否希望在 mex 文件中完成此操作),但我的诀窍是运行逻辑操作。假设加载的 mex 矩阵是 X

Xm = abs(X) > max_error;
X = Xm .* X;
于 2011-05-17T18:04:53.250 回答