sqrt(1./x)和sqrt(1.0/x)得到的结果不同 matlab

sqrt(1./x)和sqrt(1.0/x)得到的结果不同 matlab_第1张图片

 sqrt(1./x)和sqrt(1.0/x)得到的结果不同 matlab_第2张图片

原因(from chatgpt):
 

MATLAB中的两个表达式 sqrt(1.0/lamda)sqrt(1./lamda) 的区别在于它们如何处理数组和数据类型。

  1. sqrt(1.0/lamda)

    • 这里的 1.0 被视为一个标量的双精度浮点数。
    • 当执行 1.0/lamda 时,MATLAB会隐式地将 lamda 数组中的每个元素除以 1.0,这会导致相同的值。
    • 然后,它计算结果的平方根。
    • 由于您正在计算一个恒定标量的平方根,因此除了发生除以零的情况外,结果对所有元素都相同,都为 0
  2. sqrt(1./lamda)

    • 这里的 1./lamda 是逐元素的除法。
    • MATLAB会将 lamda 中的每个元素除以相应的 lamda 中的元素。
    • 然后,它单独计算每个元素的平方根。
    • 结果是一个平方根数组,其中每个元素对应于 lamda 中相应元素的倒数的平方根。

所以,关键的区别在于 MATLAB 如何处理 1.0/lamda(标量除法)与 1./lamda(逐元素除法)。在大多数情况下,当您打算对数组执行逐元素操作时,应使用 1./lamda

其实还是不太理解。。。 
理解了。matlab中是对矩阵的运算,相当于点乘和乘的区别。点除和除的区别

你可能感兴趣的:(matlab,开发语言)