美文网首页Matlab学习资料
第六章 MATLAB 程序设计

第六章 MATLAB 程序设计

作者: 00e6a8fd618f | 来源:发表于2017-05-26 11:36 被阅读44次

    第六章 MATLAB 程序设计

    MATLAB 有两种工作方式:
    一种是交互式的命令行工作方式;
    另一种是 M 文件的程序工作方式

    6.1 M 文件

    用 MATLAB 语言编写的程序,称为 M 文件。
    M 文件有两类:命令文件函数文件
    命令文件没有输入参数,也不返回参数;对 MATLAB 工作空间中的变量进行操作。
    函数文件可以输入参数、返回参数。
    本节介绍命令文件

    M 文件的建立与编辑

    3.2 数据的输入输出

    MATLAB 的输入输出方式包括命令窗口的输入输出以及图形界面的输入输出。此外,它还允许对文件进行读写。

    Input 函数
    调用格式:
    A = input(提示信息, 选项);

    pause 函数
    当程序运行时,为了查看程序的中间结果或观看输出的图形,有时需要暂停程序的执行。这时可以使用 pause 函数,调用格式为:
    pause(延迟秒数)

    Disp 函数
    MATLAB 提供的命令窗口输出函数主要有 disp 函数,调用格式为:
    Disp(输出项)

    关系及逻辑运算
    MATLAB 提供以下的关系判断及逻辑的运算元:

    • <
    • <=
    • >
    • >=
    • ==
    • ~=
    • &
    • |
    • ~

    6.3 选择结构

    if 语句和 switch 语句

    6.4 循环结构

    for 语句和 while 语句

    6.5 函数文件

    函数文件由 function 语句引导,一般格式为:
    `function 输出形参表 = 函数名 (输入形参表)
    注释说明部分
    函数体

    6.6 全局变量和局部变量

    全局变量会破坏函数对变量的封装,降低程序的可读性。
    全局变量名字一般用大写字母表示。


    
    %变量互换
    a = 1:9;
    b = [11, 12, 13; 14, 15, 16; 17, 18, 19];
    c = a; a = b; b = c;
    a
    b
    %变量输入 input
    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)]
    
    %选择结构
    %if 三角形
    A = input('请输入三角形的三条边:');
    if A(1) + A(2) > A(3) & A(1) + A(3) > A(2) & A(2) + A(3) > A(1)
        P = (A(1) + A(2) + A(3)) / 2;
        S = sqrt(P*(P-A(1))*(P-A(2))*(P-A(3)));
        disp(S);
    else
        disp('不能构成一个三角形')
    end
    %switch 
    num = input('请输入一个数');
    switch num
        case -1
            disp('I am a teacher.');
        case 0
            disp('I am a student.');
        case 1 
            disp('You are a teacher.');
        otherwise
            disp('You are a student.');
    end
    
    %循环结构
    %for 
    y = 0; n = 100;
    for i = 1:n
         y = y+1/(2*i-1);
    end
    y
    a = 0; b = 3*pi; n = 1000;
    h = (b-a) / n;
    x=a; s=0; f0=exp(-0.5*x)*sin(x+pi/6);
    for i=1:n
        x=x+h;
        f1=exp(-0.5*x)*sin(x+pi/6);
        s=s+(f0+f1)*h/2;
        f0=f1;
    end
    s
    %
    s = [0;0;0;0];
    a = [12,13,14;15,16,17;18,19,20;21,22,23];
    for k=a
        s=s+k;
    end
    disp(s');
    %while
    y=0;i=1;
    while 1
        f=1/(2*i-1);
        y=y+f;
        if y>3
            break;
        end
        i=i+1;
    end
    n=i-1
    y=y-f
    %
    A = rand(3);
    E=zeros(size(A));
    F=eye(size(A));
    K=1;
    while norm(E+f-3,1)>0
        E=E+F;
        F=A*F/K;
        K=K+1;
    end
    E
    expm(A)
    %求[100, 1000]内的全部素数
    n=0;
    for m=100:1000
        flag=1; j=m-1;
        i=2;
        while i<=j&flag
            if rem(m,i)==0
                flag=0;
            end
            i=i+1;
        end
        if flag
            n=n+1;
            prime(n)=m;
        end
    end
    prime
    %
    for i=1:10
        fac(i)=factor(i);
    end
    fac
    
    

    相关文章

      网友评论

        本文标题:第六章 MATLAB 程序设计

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