MATLAB 基础之程序设计

MATLAB 基础之程序设计

1..m文件类型

  (1)函数文件

  (2)一段程MATLAB命令

2.MATLAB 程序设计

   MATLAB 程序设计与C/C++类似,分为顺序结构、分支结构、循环结构。

   (1).顺序结构

   代码演示:

   (2).分支结构

        A:if......else......end

       代码演示:

clear;
clc;
a=input('enter a number:a=');
b=input('enter b number:b=');
if a>b
    max=a;
else
    max=b;
end
fprintf('MAX(a,b)=');
disp(max);

        B: if......elseif......else......end

       代码演示:

clear;
clc;
score=input('pelase input score:score=');
if score>=90
    score='A';
elseif score>=80
    score='B';
elseif score>=70
    score='C';
elseif score>=60
    score='D';
else
    score='E';
end
fprintf('score in Five-Classes:\nscore=');
disp(score);

        C:switch  Expression(表达式) 

                  case 数组1 

                             语句组1

                  case 数组2 

                             语句组2

                       ...

                  case 数组n 

                             语句组n

                  otherwise 

                             语句组n+1

                  end

       代码演示:

clear;
clc;
price=input('pelase input price:price=');
switch fix(price/100)
    case{0,1}
        rate=0;
    case{2,3,4}
        rate=3/100;
    case num2cell(5:9)
        rate=5/100;
    case num2cell(10:24)
        rate=8/100;
    case num2cell(25:49)
        rate=10/100;
    otherwise
        rate=14/100;
end
price=price*(1-rate);
fprintf('price=');
disp(price);

   (3).循环结构

        A: while 表达式

                  循环体

            end

       代码演示:

clear;
clc;
i=0;
sum=0;
while i<=100
    sum=sum+i;
    i=i+1;
end
fprintf('1+2+......+100=\n');
disp(sum);

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

                  循环体

            end

        C: break语句  用于终止for循环和while循环的执行。当遇到break语句时,则退出循环体,继续执行循环体外的下一条语句

        D: continue语句  用于控制for循环和while循环跳过某些语句体的执行。当遇到continue语句时,则跳出循环体中所剩余的语句,继续执行下一次循环,即本次循环结束。

       代码演示:

clear;
clc;
for i=100:200
    if rem(i,7)==0%rem为求与函数
        break;
    end
end
fprintf('能被7整除的数=\n');
disp(i);

      for语句嵌套运用:

clear;
clc;
n=input('please input a number,n=');
m=input('please input a number,m=');
sum=0;
for i=1:n
    for j=1:m
        sum=sum+i^j;
    end
end
fprintf('(1^1+1^2+...+1^m)+(2^1+2^2+...+2^m)+(3^1+3^2+...3^m)+...+(n^1+n^2+...n^m)=\n');
disp(sum);

      演示结果:

      please input a number,n=3
      please input a number,m=10
      (1^1+1^2+...+1^m)+(2^1+2^2+...+2^m)+(3^1+3^2+...3^m)+...+(n^1+n^2+...n^m)=
      90628

    (4).其他语句

       试探性语句

        try......catch......end

       代码演示:

clear;
clc;
A=input('please input a array,A=');
A=input('please input a array,B=');
A=[1,2,;3,4;5,6];
B=[7,8;9,10;11,12];
try
    C=A*B;
catch
    C=A.*B;
end
fprintf(lasterr);
fprintf('\nC=\n');
disp(C);

       演示结果:

      please input a array,A=[1 2 3;4 5 6];

      please input a array,B=[7 8 9;10 11 12];
      Error using * 
      Inner matrix dimensions must agree.
      C=:
           7 16
          27 40
          55 72

3.函数文件

    (1).基本结构

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

       函数体

       return;

    (2).函数调用

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

       代码演示:

function mul=fact(n)
mul=1;
for i=1:n
    mul=mul*i;
end

       演示结果:   

       >>a=fact(5)

           a=

                120

   (2).函数参数具有可调用性

       代码演示:

function apple=test(a,b,c)
if nargin==1
    apple=a;
elseif nargin==2
    apple=a+b;
elseif nargin==3
    apple=a+b+c;
end

       演示结果:   

   >> test(4)

  ans =

      4

  >> test(4,5)

  ans =

      9

  >> test(4,5,6)

  ans =

      15


你可能感兴趣的:(MATLAB)