美文网首页
matlab程序设计

matlab程序设计

作者: Peanut_Butter | 来源:发表于2017-02-09 00:46 被阅读0次

    M文件概述

    用MATLAB语言编写的程序,称为M文件。M文件可以根据调用方式的不同分为两类:命令文件(Script File)和函数文件(Function File)。

    eg:

    Program1

        clear;%清除工作空间中的变量

        f=input('Input Fahrenheit temperature:')

        c=5*(f-32)/9

    在MATLAB的命令窗口中输入f2c,将会执行该命令文件

    Program2

    function c=f2c(f)

    c=5*(f-32)/9

    在MATLAB的命令窗口调用该函数文件。

    clear;

    y=input('Input Fahrenheit temperature:');

    x=f2c(y)

    程序控制结构

    顺序结构

    数据输入

    input(提示信息,选项)

    选项仅有's',采用时,将输入的文本返回为字符串,而不将输入作为表达式进行评估。

    数据输出

    disp(输出项)

    其中输出项既可以为字符串,也可以为矩阵。

    eg:

    a=input('a=?');

    b=input('b=?');

    c=input('c=?');

    d=b*b-4*a*c;

    x=[(-b+sqrt(d))/(2*a),(-b-sqrt(d))/(2*a)];

    disp(['x1=',num2str(x(1)),',x2=',num2str(x(2))]);

    此程序的改进,运用if语句进行deta的判别

    程序暂停

    pause(延迟秒数)

    如果省略延迟时间,直接使用pause,则将暂停程序,直到用户按任一键后程序继续执行。

    此函数在用m文件写爬虫时可以用到,python爬虫的休眠是通过什么函数完成?

    选择结构

    if语句

    if条件1

    语句组1

    elseif条件2

    语句组2

    ……

    elseif条件m

    语句组m

    else

    语句组n

    end

    特点:if后的条件不用括号括起

    条件后也没有:号

    结尾需要用end语句结束

    switch语句

    switch表达式

    case表达式1

    语句组1

    case表达式2

    语句组2

    ……

    case表达式m

    语句组m

    otherwise

    语句组n

    end

    特点:switch后的条件不用括号括起

    条件后也没有:号

    结尾需要用end语句结尾

    case后不需要跟break语句,直接调出switch语句

    eg:

    clear;

    price=input('please enter the priece');

    switch fix(price/100)

    case{0,1}

    rate=0;

    case{2,3,4}

    rate=0.03;

    case{5,6,7,8,9}

    rate=0.05;

    case{10:24}

    rate=0.08;

    case{25:50}

    rate=0.1;

    otherwise

    rate=0.14;

    end

    finalprice=price*(1-rate);

    disp(finalprice);

    try语句

    try

    语句组1

    catch

    语句组2

    End

    try语句先试探性执行语句组1,如果语句组1在执行过程中出现错误,则将错误信息赋给保留的lasterr变量,并转去执行语句组2。

    循环结构

    for语句

    for循环变量=表达式1:表达式2:表达式3

    循环体语句

    end

    其中表达式1的值为循环变量的初值,表达式2的值为步长,表达式3的值为循环变量的终值。步长为1时,表达式2可以省略。

    for语句更一般的格式为:

    for循环变量=矩阵表达式

    循环体语句

    end

    while语句

    while语句的一般格式为:

    while (条件)

    循环体语句

    end

    其执行过程为:若条件成立,则执行循环体语句,执行后再判断条件是否成立,如果不成立则跳出循环。

    break语句和continue语句

    它们一般与if语句配合使用。

    break语句用于终止循环的执行。当在循环体内执行到该语句时,程序将跳出循环,继续执行循环语句的下一语句。

    continue语句控制跳过循环体中的某些语句。当在循环体内执行到该语句时,程序将跳过循环体中所有剩下的语句,继续下一次循环。

    函数文件

    基本结构

    function输出形参表=函数名(输入形参表)

    注释说明部分

    函数体语句

    其中以function开头的一行为引导行,表示该M文件是一个函数文件。函数名的命名规则与变量名相同。输入形参为函数的输入参数,输出形参为函数的输出参数。当输出形参多于一个时,则应该用方括号括起来。

    Eg:

    function[s,p]=fcircle(r)

    %CIRCLE calculate the area and

    perimeter of a circle of the radii r

    %r

    %s

    %p

    %written at 2017/2/7

    %AUTHOR Caid

    s=pi*r*r;

    p=pi*2*r;

    函数调用

    函数调用的一般格式是:

    [输出实参表]=函数名(输入实参表)

    要注意的是,函数调用时各实参出现的顺序、个数,应与函数定义时形参的顺序、个数一致,否则会出错。函数调用时,先将实参传递给相应的形参,从而实现参数传递,然后再执行函数的功能。

    函数参数的可调性

    在调用函数时,MATLAB用两个永久变量nargin和nargout分别记录调用该函数时的输入实参和输出实参的个数。

    eg:

    functionfout=tran(a,b,c)

    ifnargin==1

    fout=a;

    elseifnargin ==2

    fout=a+b;

    elseifnargin ==3

    fout=(a*b*c)/2;

    End

    全局变量与局部变量

    Global变量名

    在函数文件中需要申明所使用的全局变量

    eg:

    function f=wadd(x,y)

    global ALPHA BETA

    f=ALPHA*x+BETA*y;

    在命令窗口中输入:

    global ALPHA BETA

    ALPHA=1;

    BETA=2;

    s=wadd(1,2)

    程序调试

    Debug

    Breakpoints

    调试命令

    命令

    描述

    ctrl-c

    结束调试,终止仿真

    dbcont

    继续执行到下一个断电

    dbquit

    结束调试,终止仿真

    dbstep [in|out]

    当遇到断点时,执行下一步进入或者一步执行过子函数

    help

    显示help文档

    print 

    显示当前scope中的变量var in如果var是个向量或矩阵你可以索引变量var.例如, var(1,2).

    save

    保存变量到某个文件中。和matlab命令save一样的用法.恢复某个变量到matlab工作空间,,使用load命令

    如果变量在当前scope,和"print "一样

    who

    显示当前scope的变量

    whos

    显示当前scope中所有变量的类型和大小

    相关文章

      网友评论

          本文标题:matlab程序设计

          本文链接:https://www.haomeiwen.com/subject/qftiittx.html