简介
所谓M文件就是将处理问题的各种命令融合到一个文件中,该文件以.m为扩展名。然后,由MATLAB系统编译M文件,得出相应的运行结果。M文件具有相当大的可开发性和扩展性。M文件有脚本文件和函数文件两种。脚本文件不需要输入参数,也不输出参数,而会按照文件中指定的顺序执行命令序列。而函数文件则接受其他数据为输入参数,并且可以返回结果。
脚本式M文件
避免用户输入较多命令,避免重复输入命令,打开该类M文件,单击运行或者按下F5按键,即可运行该类文件
a=2;
b=2;
clf;
x=-a:0.2:a;y=-b:0.2:b;
for i=1:length(y)
for j=1:length(x)
if x(j)+y(i)>1
z(i,j)=0.5457*exp(-0.75*y(i)^2-3.75*x(j)^2-1.5*x(j));
elseif x(j)+y(i)<=-1
z(i,j)=0.5457*exp(-0.75*y(i)^2-3.75*x(j)^2+1.5*x(j));
else z(i,j)=0.7575*exp(-y(i)^2-6.*x(j)^2);
end
end
end
axis([-a,a,-b,b,min(min(z)),max(max(z))]);
colormap(flipud(winter));surf(x,y,z);
运行结果,参考如下图片
函数式M文件
函数式M文件比脚本式M文件相对复杂一些,脚本式M文件不需要输入变量,也不一定返回结果,而函数式M文件一般要输入变量,并且有返回结果。举例使用M文件计算向量的平均值。
输入如下代码,保存average.m
function y = average(x)
% AVERAGE Mean of vector elements.
% AVERAGE(X), where X is a vector, is the mean of vector
% elements. Nonvector input results in an error.
[m,n] = size(x);
if (~((m == 1) | (n == 1)) | (m == 1 & n == 1))
error('Input must be a vector') % 错误信息
end
y = sum(x)/length(x);
调用过程
A = 1:99
B = average(A)
结果如下图所示
实际代码存放以及编写如下图所示