Matlab 中的非元素向量除法 returns 一个标量!它是什么?
Non-element-wise vector division in Matlab returns a scalar! What is it?
我花了一个多小时来查找代码中导致精度错误的错误。事实证明,在我的一个方程式中,我忘记了按元素划分两个向量;我写了 /
而不是 ./
。通常 Matlab 在这些情况下会给出错误,例如如果您尝试将两个向量与 *
相乘而不是 .*
。但在这种情况下,它很乐意返回一个标量值!这是应该发生的吗,这个值有什么意义吗?
例如,
x = 0 : 0.01 : 1;
y = x/exp(x);
集y=0.3132
.
是的,这应该发生。您使用了 matrix right division operator /
,在这种特殊情况下,它找到了 y
的标量值,它在最小二乘意义上求解了以下方程组:
y*exp(x) = x;
我花了一个多小时来查找代码中导致精度错误的错误。事实证明,在我的一个方程式中,我忘记了按元素划分两个向量;我写了 /
而不是 ./
。通常 Matlab 在这些情况下会给出错误,例如如果您尝试将两个向量与 *
相乘而不是 .*
。但在这种情况下,它很乐意返回一个标量值!这是应该发生的吗,这个值有什么意义吗?
例如,
x = 0 : 0.01 : 1;
y = x/exp(x);
集y=0.3132
.
是的,这应该发生。您使用了 matrix right division operator /
,在这种特殊情况下,它找到了 y
的标量值,它在最小二乘意义上求解了以下方程组:
y*exp(x) = x;