matlab 矩阵除法

标量除以矩阵 是用"/",还是"./"?
具体到题目就是:
M=6e24;
m=7.4e22;
G=6.673e-11;
r=linspace(3.8e8,4.0e8,10);
F=G*M*m/r.^2(为什么这样就不能运算)
F=G*M*m./r.^2(这样就可以?G*M*m不是标量么?)
我知道可以,只是想知道为什么可以?区别在哪?

Matlab中有两种矩阵除法符号:“\”即左除和“/”即右除.如果A矩阵是非奇异方阵,则A\B是A的逆矩阵乘B,即inv(A)*B;而B/A是B乘A的逆矩阵,即B*inv(A).具体计算时可不用逆矩阵而直接计算.

通常:

x=A\B就是A*x=B的解;

x=B/A就是x*A=B的解.

当B与A矩阵行数相等可进行左除.如果A是方阵,用高斯消元法分解因数.解方程:A*x(:, j)=B(:, j),式中的(:, j)表示B矩阵的第j列,返回的结果x具有与B矩阵相同的阶数,如果A是奇异矩阵将给出警告信息.

如果A矩阵不是方阵,可由以列为基准的Householder正交分解法分解,这种分解法可以解决在最小二乘法中的欠定方程或超定方程,结果是m×n的x矩阵.m是A矩阵的列数,n是B矩阵的列数.每个矩阵的列向量最多有k个非零元素,k 是A的有效秩.
温馨提示:答案为网友推荐,仅供参考
第1个回答  2010-01-25
加点(.)是对每个元素运算
你如果直接/,matlab知道这个标量要除以那个矩阵元素哪?

当然要./,指标量对每个矩阵元素都做一次除法,
也就是你要的结果了.

类似还有.*和*本回答被提问者采纳
第2个回答  2010-01-25
F=G*M*m./r.^2(这样就可以了。
标量除以矩阵需要./
第3个回答  2010-01-25
M,m,G是数值,而r是数组。只能用点除。所以F=G*M*m/r.^2是错的。
相似回答