matlab中负数到非负数的转换

matlab中负数到非负数的转换,matlab,Matlab,这是一个相当普遍的问题 实际上,我有一个值x=-77(dBm),我想把它改为dB,这样命令将是y=pow2db(x)。问题是它不接受负值。那么,我如何将其更改为非负,然后计算y 非常感谢您的评论 提前感谢我猜这两种可能性之一: y = pow2db(abs(x)) 或 但我不确定其中一个是否有意义。我猜这两种可能性之一: y = pow2db(abs(x)) 或 不确定它们中的任何一个是否有意义。您可以使用Matlab提供的函数 例如: abs([-2 2]) ans= 2 2

这是一个相当普遍的问题

实际上,我有一个值
x=-77
(dBm),我想把它改为dB,这样命令将是
y=pow2db(x)
。问题是它不接受负值。那么,我如何将其更改为非负,然后计算
y

非常感谢您的评论


提前感谢

我猜这两种可能性之一:

y = pow2db(abs(x)) 


但我不确定其中一个是否有意义。

我猜这两种可能性之一:

y = pow2db(abs(x)) 

不确定它们中的任何一个是否有意义。

您可以使用Matlab提供的函数

例如:

abs([-2 2])
ans=
   2  2
仍然检查你正在做什么。对数以一种特殊的方式工作,您可能不需要绝对数的对数。。。只需检查:D

您可以使用Matlab提供的函数

例如:

abs([-2 2])
ans=
   2  2

仍然检查你正在做什么。对数以一种特殊的方式工作,您可能不需要绝对数的对数。。。只需检查:D

abs()?它返回绝对值…@AnderBiguri谢谢!!它起作用了:)y=pow2db(x)只不过是以10为基数的x的对数,未定义负值的对数。您感到困惑,请再次检查x是什么,ypow2db不会从dBm转换为dB!我很怀疑你想把它改成+77计算x(rssi_dBm)=-(33+agcval*(89-33)/(29-1))的公式,其中agcval=25(只是一个例子),所以这个“x”给了我一个负值,所以我想把它改成正值。PS原因是因为我试图绘制这些值,这些值假定会增加,但由于x(rssi_dBm),它会减少。当我们进行讨论时,有人说这是因为它在“Pathloss dBm”中,所以当距离减少时它会减少。所以我需要将其转换为“Pathloss dB”,它会随着距离的增加而增加。abs()? 它返回绝对值…@AnderBiguri谢谢!!它起作用了:)y=pow2db(x)只不过是以10为基数的x的对数,未定义负值的对数。您感到困惑,请再次检查x是什么,ypow2db不会从dBm转换为dB!我很怀疑你想把它改成+77计算x(rssi_dBm)=-(33+agcval*(89-33)/(29-1))的公式,其中agcval=25(只是一个例子),所以这个“x”给了我一个负值,所以我想把它改成正值。PS原因是因为我试图绘制这些值,这些值假定会增加,但由于x(rssi_dBm),它会减少。当我们进行讨论时,有人说这是因为它在“Pathloss dBm”中,所以当距离减小时它会减小。所以我需要将其转换为“Pathloss dB”它会随着距离的增加而增加。@Shai你知道它是如何与对数一起工作的吗?你知道它是如何与对数一起工作的吗?问题是概念,你可能不想通过概念来做这件事,在@VinithpNair做这件事可能不是正确的。我想这件事做得很好。我甚至通过计算器(即)x=-77 abs(x)=77 pow2db(x)=18.8来检查它。。。而在计算器10log(77)中也是相同的值。对!现在我明白了!!明白@Shai你知道它是如何处理对数的吗?你知道它是如何处理对数的吗?问题是概念,你可能不想通过概念来处理它,在@VinithpNair中这样做可能不是正确的。我想这一个工作得很好。我甚至通过计算器(即)x=-77 abs(x)=77 pow2db(x)=18.8来检查它。。。而在计算器10log(77)中也是相同的值。对!现在我明白了!!理解!!