matlab中的矩阵除法问题

来源:百度知道 编辑:UC知道 时间:2024/06/19 07:57:30
M文件如下:
function f=ff2(x)
f=3/x;
在matlab中输入如下:
ff2([1:10])
但是提示错误:
??? Error using ==> mrdivide
Matrix dimensions must agree.

Error in ==> ff2 at 2
f=3/x;
看了关于矩阵右除和左除的帮助文件,就把M文件改成:
function f=ff2(x)
f=3\x;
然后再输入同样的命令,但是求出的结果却是要求结果的倒数。
请问这个问题怎么解决?
加一个点就行?这个点是什么运算呢?请教了。

对于Ax=b这个矩阵乘法来说
x=inv(A)*b,这时x=A\b,但这时,就要要求A的行数等于b的行数。

对于xA=b这个矩阵乘法来说
x=b*inv(A),这时x=b/A,但这时,就要要求A的列数等于b的列数。

对于你的3/[1:10],是第二种情况,两者的列数不一致。导致错误
对于3\[1:10],这是第一种,两者的行数相同,即inv(3)*[1:10]=1/3*[1:10]
希望对你有点帮助。

加一个点,即

>> 3/[1:10]
??? Error using ==> mrdivide
Matrix dimensions must agree.

>> 3./[1:10]

ans =

3.0000 1.5000 1.0000 0.7500 0.6000 0.5000 0.4286 0.3750 0.3333 0.3000