poster
2019-12-14, 20:13
我正在评估一个简单的功能:
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 );给一个单一的价值,而不是价值的载体?
回答:
操作B/A (给定B = 2*x并且A = sqrt(1+x.^2) )将尝试执行矩阵右除法 (http://www.mathworks.com/help/techdoc/ref/mrdivide.html) ,对于行向量x将是对矩阵 (http://www.mathworks.com/help/techdoc/ref/mrdivide.html)最小二乘的解。方程组yA = B ,得出y的标量值。
对于按元素进行数组划分 (http://www.mathworks.com/help/techdoc/ref/arithmeticoperators.html) , B./A改为执行操作B./A (请注意. )。
更多&回答... (https://stackoverflow.com/questions/4801261)
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 );给一个单一的价值,而不是价值的载体?
回答:
操作B/A (给定B = 2*x并且A = sqrt(1+x.^2) )将尝试执行矩阵右除法 (http://www.mathworks.com/help/techdoc/ref/mrdivide.html) ,对于行向量x将是对矩阵 (http://www.mathworks.com/help/techdoc/ref/mrdivide.html)最小二乘的解。方程组yA = B ,得出y的标量值。
对于按元素进行数组划分 (http://www.mathworks.com/help/techdoc/ref/arithmeticoperators.html) , B./A改为执行操作B./A (请注意. )。
更多&回答... (https://stackoverflow.com/questions/4801261)