【发布时间】:2012-05-16 03:36:47
【问题描述】:
在八度音程中,是否有内置函数用于将向量中的 Inf/NaN 替换为 0
例如
a = log10([30 40 0 60]) => [1.4771 1.6021 -Inf 1.7782]
我可以使用有限或查找函数来查找有效值的索引/位置 但我不知道如何在不编写函数的情况下正确复制值。
finite(a) => [1 1 0 1]
【问题讨论】:
在八度音程中,是否有内置函数用于将向量中的 Inf/NaN 替换为 0
例如
a = log10([30 40 0 60]) => [1.4771 1.6021 -Inf 1.7782]
我可以使用有限或查找函数来查找有效值的索引/位置 但我不知道如何在不编写函数的情况下正确复制值。
finite(a) => [1 1 0 1]
【问题讨论】:
>> 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
成功了,这使用logical indexing
~ 是布尔/逻辑值的 NOT 运算符,isfinite(a) 生成一个逻辑向量,大小与 a: 相同:
>> ~isfinite(a)
ans =
0 0 1 0
如您所见,这是用于逻辑索引。
【讨论】:
与 NaN 类似,您可以使用 isnan() 将这些元素替换为您想要的任何内容。
【讨论】: