在matlab中实现矩阵的乘法(一个易犯错误)

时间:2024-10-12 16:43:35

1、首先不用说,矩阵的乘法肯定得遵循矩阵乘法的规定:左边矩阵的列数一定要等于右边矩阵的行数,即:要求a*b,则a和b的规模应该是m*n和n*m。

2、但是刚开始使用matlab的时候,在matlab中输入矩阵时,我的输入形式是这样的:a={1/3,1/2,0;1/3,0,1/2;1/3,1/2,1/2}b={1/3;1/3;1/3}

3、于是在enter之后就会出现:a= [1/3 ] [1/2 ] [ 0 ] [1/3 ] [ 0 ] [1/2 ] [1/3 ] [1/2 ] [1/2 ]b= [1/3 ] [1/3 ] [1/3 ]

4、计算两者的乘积:c=a*b结果出现如下的提示信息:??? Funct坡纠课柩ion 'mtimes' is 荏鱿胫协not defined for values of class 'cell'.Error in ==> mtimes at 18 [varargout{1:nargout}] = builtin('mtimes', varargin{:});也就是说不对呗

5、后面才发现,原来在一开始时我的艏婊锬曛矩阵的表示方法就错了,实际上应该是这样的:a=[1/3,1/2,0;1/3,0,1/2;1/3,1/2,1/2]b=[1/3;1/3;1/3]enter之后分别显示的是a= 1/3 1/2 0 1/3 0 1/2 1/3 1/2 1/2 b= 1/3 1/3 1/3

6、然后计算c=a*b,enter后显示c= 5/18 5/18 4/9

7、看出差别了吗?也就是说矩阵的表示不适用{ },而是使用的是[ ]。使用{ },其类型就为对象类型了;而[ ]才是矩阵类型,才能正确地进行矩阵的运算。

© 手抄报圈