MATLAB-- M文件编程

之前的内容涉及命令行部分的内容只能解决比较简单的问题,输入比较方便,但是遇到比较复杂的问题时,用户就需要使用M文件编程。

M文件

类似一般高级语言,是一种程序化的编程语言,但与它们相比它只是一个简单的ASCII码文本文件,因此它的语法比一般的高级语言简单,程序易调试,有很好的交互性。它同时具有很多工具箱,非常方便(可以添加自己的M文件)。MATLAB语言是由C语言,是一个解释型的语言。

简单讲,M文件就是将处理问题的各种命令融合到一个文件中(.m),然后由系统进行编译,得出结果。它有两个形式:

  • 脚本script (类似C中的子过程),变量保存在基本各种空间
  • 函数functions (类似子函数,有返回值),变量保存在自己特殊的工作空间。

M文件编辑器

主界面新建即可。(或者在命令行输入 edit mfiles)
有个特殊方法是:在历史记录窗口,按住ctrl或者shift选中所需命令,右键后选择“Create M-file”
%%创建cell

M文件的基本内容

function y=fact(x)
%UNTITLED2 此处显示有关此函数的摘要
%   此处显示详细说明
[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)

1.函数定义行 function [out1,out2…]=funname(in1,in2…)
2.H1行 :help文本的第一行,描述函数的功能、参数显示
3.连续多行的注释文本,把文件保存在当前目录下,调用help函数时就可以看到想相应的帮助文本
4.注释文本:%;多行:%{…
%}
5.函数体:计算赋值、函数调用、循环和流程控制以及注释、空行等。

脚本式M文件

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文件

function y=fact(x)
%UNTITLED2 此处显示有关此函数的摘要
%   此处显示详细说明
[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)

函数式M文件需要自带变量。并且默认情况下,函数式M文件中的变量都是局部变量,仅在函数运行期间有效,函数运行结束这些变量自动从空间清楚。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值