第六篇--MATLAB程序设计

1.M文件

1.1 M文件的建立与编辑

  • M文件类型:命令文件和函数文件。
  • 命令文件:没有输入参数,不返回输出参数。
  • 函数文件:可以输入参数,也可以返回输出参数。
  • 建立新的M文件:目录窗口File菜单选择New菜单项,选择M-file命令。
  • 编辑M文件:从MATLAB命令窗口的file菜单选择open M-file命令。

1.2 命令文件

  • 将需要运行的命令编辑到一个命令文件中,然后在 MATLAB命令窗口输入该命令文件的名字,就会顺序执 行命令文件中的命令。
  • 建立命令文件以f2c.m保存。
clear;            %清除工作空间中的变量
f=input('Input Fahrenheit temperature:');
c = 5*(f-32)/9

切换文件工作目录到你保存的M文件目录下,然后在MATLAB的命令窗口中输入f2c,将会执行该命令文件,执行情况为:

Input Fahrenheit temperature:73

c =

   22.7778

2.数据的输入和输出

2.1 input函数

  • 调用格式:A=input(提示信息,选项);
  • 选项可以是一个字符串。
  • 示例:求一元二次方程 a 2 + b x + c = 0 a^2+bx+c=0 a2+bx+c=0的根。
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)] 

执行情况如下:

a=?1
b=?1
c=?1

x =

  -0.5000 + 0.8660i  -0.5000 - 0.8660i

2.2 pause函数

  • 暂停程序的执行
  • 调用格式:pause(延迟秒数)
  • 如果省略延迟时间,直接使用pause,则将暂停程序,直到用 户按任一键后程序继续执行。

2.3 disp函数

  • 命令窗口输出函数。
  • 调用格式;disp(输出项),输出项是字符串或者矩阵。
  • 示例:
  A='Hello,MATLAB'; 
  disp(A) 

输出为:

 Hello,MATLAB 

2.4 echo

  • echo on指令显示其后所有执行文件的指令。
  • echo off指令关闭其后所有执行文件的指令显示。

3.程序设计

程序结构与流程控制语句

  1. 顺序结构
    顺序执行程序模块。
  2. 条件结构
  • if - else - end 语句
    在这里插入图片描述
  1. 选择结构
  • switch-case-end 语句
    在这里插入图片描述
  1. 循环结构
  • while语句:
  • while<逻辑表达式>
    <循环体>
    end
  • for语句:
  • for 变量=初值;增量;结束值
    程序模块;
    end
    • 循环嵌套
      求[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  %变量prime存放素数 

输出:

prime =
  18101   103   107   109   113   127   131   137
  916139   149   151   157   163   167   173   179
  1724181   191   193   197   199   211   223   227
  2532229   233   239   241   251   257   263   269
  3340271   277   281   283   293   307   311   313
  4148317   331   337   347   349   353   359   367
  4956373   379   383   389   397   401   409   419
  5764421   431   433   439   443   449   457   461
  6572463   467   479   487   491   499   503   509
  7380521   523   541   547   557   563   569   571
  8188577   587   593   599   601   607   613   617
  8996619   631   641   643   647   653   659   661
  97104673   677   683   691   701   709   719   727
  105112733   739   743   751   757   761   769   773
  113120787   797   809   811   821   823   827   829
  121128839   853   857   859   863   877   881   883
  129136887   907   911   919   929   937   941   947
  137143953   967   971   977   983   991   997
  1. 中断语句
  • break语句
  • continue语句

4.函数文件

4.1 函数文件格式

  • 函数文件由function语句引导,其格式为:
    function 输出形参表=函数名(输入形参表)
    注释说明部分
    函数体
  • 注:其中函数名的命名规则与变量名相同。输入形参为函数的输 入参数,输出形参为函数的输出参数。当输出形参多于1个时, 则应该用方括号括起来。
  • 示例:编写函数文件求小于任意自然数n的 Fibonacci数列各项。
 function f=ffib(n) 
    %用于求Fibonacci数列的函数文件 
    %f=ffib(n) 
    %1999930日编 
    f=[1,1]; 
    i=1; 
    while f(i)+f(i+1)<n 
        f(i+2)=f(i)+f(i+1);
        i=i+1; 
    end 

输出:

ans =
  131           1           2
  463           5           8
  7913          21          34
  101255          89         144
  1315233         377         610
  1617987        1597

4.2 函数调用

  • 函数文件编制好后,就可调用函数进行计算了。
  • 调用格式: [输出实参表]=函数名(输入实参表)
  • 示例:利用函数的递归调用,求n!。
    函数文件factor.m
 function f=factor(n) 
 if n<=1        
     f=1;     
 else
     f=factor(n-1)*n; 
 end
 return;

命令文件main.m

 for i=1:10 
     fac(i)=factor(i); 
 end
 fac

在命令文件main.m中调用函数文件factor.m。

5.全局变量和局部变量

  • 全局变量用命令global定义。作用域是这个MATLAB空间。
  • 函数文件内部变量是局部的变量。
  • 示例:全局变量应用。
    函数文件wadd.m,将输入参数加权相加。
function f=wadd(x,y)     
    %add  two  variable      
    global ALPHA BETA     
    f=ALPHA*x+BETA*y; 

命令窗口输入:

 global ALPHA BETA     
 ALPHA=1;     
 BETA=2;     
 s=wadd(1,2) 

输出:

s =5
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Siri_only

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值