在八度音程中,是否存在用于在向量中将Inf/NaN替换为0的函数
例如
a = log10([30 40 0 60]) => [1.4771 1.6021 -Inf 1.7782]
Run Code Online (Sandbox Code Playgroud)
我可以使用finite或find函数来查找有效值的索引/位置,但我不知道如何在不编写函数的情况下正确复制值.
finite(a) => [1 1 0 1]
Run Code Online (Sandbox Code Playgroud)
Gun*_*uyf 22
>> a = log10([30 40 0 60])
a =
1.477 1.602 -Inf 1.778
>> a(~isfinite(a))=0
a =
1.477 1.602 0 1.778
Run Code Online (Sandbox Code Playgroud)
诀窍,这使用逻辑索引
~是布尔值/逻辑值的NOT运算符,并isfinite(a)生成一个逻辑向量,大小与:
>> ~isfinite(a)
ans =
0 0 1 0
Run Code Online (Sandbox Code Playgroud)
如您所见,这用于逻辑索引.