我在Matlab上做了一些编程,我偶然发现了代码中的这一部分:[1 1 1 1 1 1 1 1]/[ 1 3 4 7 9 11 13 15]ans = 0.0939我想知道它到底是怎么计算这个除法的谢谢你的时间我试着一个元素一个元素地除,我试着对每个向量的元素求和,再除以它
wgeznvg71#
/运算符是mrdivide的别名,它有documentation。x = B/A求解线性方程组x*A = B。矩阵A和B必须包含相同的列数。如果A缩放不好或接近奇异,MATLAB®会显示警告消息,但无论如何都会执行计算。
/
mrdivide
强调我的,对于你所展示的情况,其中A是一个矩形m乘n矩阵(m=1,n=8),B是一个n=8列的矩阵。所以你的结果是“* 系统x*A=B * 的最小二乘解",其中你有x=0.0939。你可以把它想象成找到
A
B
x*A=B
x=0.0939
norm([1 1 1 1 1 1 1 1] - X*[ 1 3 4 7 9 11 13 15])
即
x = 0:0.001:0.3; y = arrayfun( @(X) norm([1 1 1 1 1 1 1 1] - X*[ 1 3 4 7 9 11 13 15]), x ); figure; plot( x, y )
(Note MATLAB并没有在引擎盖下做这个图,这纯粹是一个可视化来说服你自己操作代表什么)
1条答案
按热度按时间wgeznvg71#
/
运算符是mrdivide
的别名,它有documentation。x = B/A求解线性方程组x*A = B。矩阵A和B必须包含相同的列数。如果A缩放不好或接近奇异,MATLAB®会显示警告消息,但无论如何都会执行计算。
如果A是一个m × n的矩形矩阵,m ~= n,B是一个n列矩阵,则x = B/A返回方程组xA = B的最小二乘解。
强调我的,对于你所展示的情况,其中
A
是一个矩形m乘n矩阵(m=1,n=8),B
是一个n=8列的矩阵。所以你的结果是“* 系统
x*A=B
* 的最小二乘解",其中你有x=0.0939
。你可以把它想象成找到
即
(Note MATLAB并没有在引擎盖下做这个图,这纯粹是一个可视化来说服你自己操作代表什么)