刚接触MATLAB时,你是不是经常对着满屏的报错发呆?明明公式没写错,一运行就提示“矩阵维度必须一致”或者“内部矩阵维度不一致”。其实,这大多是因为没搞懂MATLAB最核心的矩阵运算规则。特别是点运算(.)和矩阵乘法()的区别,90%的新手都在这个坑里摔过跤。今天我们就把这些基础运算和M文件的编写逻辑一次性讲清楚,帮你彻底告别报错。
在MATLAB中,矩阵的加减法非常直观,就是对应元素的直接加减。但到了乘除法,就需要格外小心了。
标准的矩阵乘法(A*B)必须严格遵循线性代数的规则,即第一个矩阵的列数必须等于第二个矩阵的行数。如果你想让两个同维度矩阵的对应元素直接相乘,就必须在乘号前加个点,写成 A.*B。
除法和幂运算也是同理,带点的是“元素级运算”,不带点的是“矩阵级运算”:
A/B 在数学上等价于 A * inv(B)(A乘以B的逆矩阵),而 A\B 等价于 inv(A) * B。这在求解线性方程组时非常有用。A.*2 表示矩阵A的每个元素都乘以2;A./3 表示每个元素都除以3;A.\B 表示用B中的元素除以A中对应的元素;A.^2 表示对A的每个元素求平方;A.^B 则是以A的元素为底数,B的元素为指数进行幂运算。学会了基础运算,接下来就要把它们封装成可复用的代码,这就需要用到M文件。M文件主要分为两类,新手很容易混淆。

1. 函数脚本(Function)
函数脚本最大的特点就是可以接收输入参数,并返回输出结果,内部的变量也是局部的,不会污染全局工作区。比如我们要生成一个范德蒙德矩阵,就可以写成函数:
function res = fandemeng(x)
% 参数x: 范德蒙德矩阵的生成数
% 返回值res: 结果矩阵
n = length(x);
for i = 1:n
d(i,:) = x.^(i-1); % 这里就用到了上面讲的点幂运算
end
res = d;
end
2. 脚本文件(Script)
脚本文件就是一段普通的代码块,它没有输入输出参数,运行时直接在当前工作区执行,产生的变量也会保留在工作区中。我们可以新建一个脚本文件来调用上面的函数:
clear all
clc
x = 1:5;
d = fandemeng(x); % 调用刚才写好的函数脚本
把这段代码保存并运行,你就能直接得到计算好的范德蒙德矩阵结果。熟练掌握矩阵的点运算规则,并学会用函数脚本封装代码,你的MATLAB编程效率至少能提升一倍。下次遇到复杂的数学公式,记得先判断是该用矩阵运算还是元素级点运算!
武汉格发信息技术有限公司,格发许可优化管理系统可以帮你评估贵公司软件许可的真实需求,再低成本合规性管理软件许可,帮助贵司提高软件投资回报率,为软件采购、使用提供科学决策依据。支持的软件有: CAD,CAE,PDM,PLM,Catia,Ugnx, AutoCAD, Pro/E, Solidworks 等。