gpt4 book ai didi

MATLAB - 用小数字替换矩阵中的零

转载 作者:太空宇宙 更新时间:2023-11-03 19:49:36 24 4
gpt4 key购买 nike

我有一个矩阵,其中一些元素为零。在后续操作(记录日志等)中,这对我来说是个问题。有没有办法用我选择的输入快速替换矩阵中的零元素。快速 - 意思是,没有循环。

最佳答案

直接的答案是:

M(M == 0) = realmin;

这完全符合您的要求,用一个小数字替换零。看到这会以矢量化方式隐式搜索零。不需要循环。 (这是一种 MATLAB 方式,避免了那些显式和缓慢的循环。)

或者,您可以使用最大值,因为负数从来都不是问题。所以

M = max(M,realmin);

也会起作用。同样,这是一个矢量化解决方案。如果没有仔细测试,我不确定哪个更快,但肯定可以接受。

请注意,我在这里使用的是 realmin 而不是 eps,因为它实际上是 double 中可以得到的最小值。但请使用对您有意义的任何小数字。

log10(realmin)
ans =
 -307.6527

将其与 eps 进行比较。

log10(eps)
ans =
-15.6536

关于MATLAB - 用小数字替换矩阵中的零,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16946877/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com