我正在评估一个简单的函数:
y = (2*x)/sqrt( 1 + x.^2 );
其中x
是一个载有约100个值的向量。但是,MATLAB使y
等于此实例中的单个标量值。如果我这样做:
y = 2*x;
我按预期在y
得到了一个值向量。如果我这样做:
y = x.^2;
我还按预期在y
中获取值的向量。
为什么上面的等式y = (2*x)/sqrt( 1 + x.^2 );
给出单个值而不是值向量?
答案 0 :(得分:6)
操作B/A
(给定B = 2*x
和A = sqrt(1+x.^2)
)将尝试执行matrix right division,对于行向量x
将成为行中的解决方案方程yA = B
系统的最小二乘意义,导致y
的标量值。
对于element-wise array division,请执行操作B./A
(请注意.
)。