M文件

1. 脚本文件

  • Script is a file containing a series of commands
  • Scripts need to be saved to a <file>.m file before they can be run
  • Matlab工具库中有大量的预定义M文件,可以用what命令,列出有用户定义和在Matlab中存放的M文件
  • 脚本可以运行工作空间中存在的数据,或创建新数据来运行

2. 函数文件

  • 概念

    • M文件的第一个可执行语句以Function开始,则该文件为函数文件,每一个函数文件都定义一个函数
    • 脚本文件和函数文件区别
      • 脚本文件的变量为工作空间的变量,在文件执行完成后保留在工作空间
      • 函数文件内定义的变量为局部变量,只在函数文件内部起作用,函数文件执行完后,内部变量将被清除
  • 函数文件结构
    • 函数定义行

      • 关键词 Function,定义函数名(必须以字母开头)、输入参数和输出参数,也可以没有输出参数
      • 函数名要和文件名相同,当两者不一致时,Matlab会忽视函数名,以文件名为准
      • 格式:function [x, y, z] = sphere(theta, phi, rho)
    • H1行
      • 帮助文本的第一行,是函数定义行下的第一个注释行,供lookfor查询时使用
    • 帮助文本
      • 在函数定义行后面,供help命令查询使用
    • 函数体
      • 包含用于完成函数功能的语句,这些语句可以是调用函数、流程控制、交互式输入输出、计算、赋值、注释和空行
    • 注释
  • 匿名函数
    • 匿名函数没有函数名,也不是函数M文件,只包含一个表达式和输入输出参数
    • 格式:f = @(input1, input2, _) expression
      • f 为创建的函数句柄,间接访问函数
      • Fxy = @(x, y) x.^y + 3*x*y
      • F(2,5); ans = 62
  • 子函数(SubFunction)
    • 函数M文件中,第一个函数未主函数,其他函数为子函数。主函数位置不能变,子函数排列顺序可以任意改变
    • 文件名应与主函数名相同,外部程序只能调用主函数
    • 子函数只能被处于同一M文件中的主函数或其他子函数调用
    • 函数调用时,子函数的优先级仅次于Matlab内置函数
    • 同一M文件的主函数、子函数工作区彼此独立,各个函数间的信息传递可以通过输入输出变量、全局变量实现。
    • help、lookfor等帮助指令不能显示M文件中子函数的任何信息
  • 重载函数
    • 用于处理功能类似但功能属性不同的函数,比如变量类型不同
  • eval 函数:与文本变量一起使用,用于求表达式的值或执行包含文本字符串的语句

3. Tips

  • 注释

    • 注释符:%
    • 快捷键:Ctrl + R,注释;Ctrl + T,取消注释
  • 节(section)
    • 符号:%%
  • 智能缩进
    • 右键 -> 智能缩进
    • 快捷键:Ctrl + I
  • M文件开头命令
    • clear all - remove all previous variable
    • close all
    • clc
  • 不想输出时,语句后加分号 :
  • 一行写不下时,用省略号 ...
  • 终止程序:Control + C

控制流程(Control Flow)

1. 顺序结构

  • Matlab中最基本的结构,按先后顺序执行
  • 输入、计算、输出

2. if - else - end分支结构

  1. if condition1
  2.  
  3.   statement1
  4.  
  5. elseif condition2
  6.  
  7.   statement2
  8.  
  9. else
  10.  
  11.   statement3
  12.  
  13. end

3. switch - case结构

  1. switch expression
  2.  
  3.   case value1
  4.  
  5.     statement1
  6.  
  7.   case value2
  8.  
  9.     statement2
  10.  
  11.   .
  12.  
  13.   .
  14.  
  15.   otherwise
  16.  
  17.     statement
  18.  
  19. end

4. try - catch

  1. try
  2.  
  3.   command1 %command1总是首先被执行。若正确,执行完成后结束此结构
  4.  
  5. catch
  6.  
  7.   command2 %command1执行发生错误时,执行command2
  8.  
  9. end

5. for循环

  1. for variable = start : increment : end
  2.  
  3.   commands
  4.  
  5. end

6. while循环

  • while 和 for 循环的区别在于,while 循环的循环体被执行的次数是不确定的,而 for 循环是确定的
  • 若 while 指令后的表达式为空数组,则默认值为假,直接结束循环
  1. while expression
  2.  
  3.   statement
  4.  
  5. end

7. 其他指令

  • return

    • 当被调用函数执行完成后,Matlab自动将控制权转回主函数或Commands窗口
  • input
    • 用户通过键盘输入
    • value = input('message')
  • pause
    • 用于控制执行文件的暂停与恢复
    • pause,暂停执行文件,等待用户按任意键继续
    • pause(n),在继续执行文件前,暂停n秒
  • continue
    • 在嵌套循环中,continue把控制传给下一个 for 或 while 循环所嵌套的迭代
  • break
    • 对for循环或while循环结构的终止
  • error
    • error('message'),显示出错信息message,终止程序
  • warning
    • warning('message'),显示警告信息message,继续运行程序

请使用手机"扫一扫"x

Matlab 编程的更多相关文章

  1. MATLAB 编程风格指南及注意事项

    MATLAB编程风格指南Richard Johnson 著Genial 译MATLAB 编程风格指南Richard JohnsonVersion 1.5,Oct. 2002版权: Datatool 所 ...

  2. 【Matlab编程】哈夫曼编码的Matlab实现

    在前年暑假的时候,用C实现了哈夫曼编译码的功能,见文章<哈夫曼树及编译码>.不过在通信仿真中,经常要使用到Matlab编程,所以为了方便起见,这里用Matlab实现的哈夫曼编码的功能.至于 ...

  3. 一些matlab教程资源收藏,使用matlab编程的人还是挺多的

    Matlab教程专题资源免费下载整理合集收藏 <MATLAB从入门到精通>高清文字版[PDF] 103.9MB 简体中文 <矩阵实验室>(Mathworks.Matlab.R2 ...

  4. MATLAB编程技巧

    [摘要] MATLAB是一种科学计算语言,和C.Fortran等高级语言相类似,能方便的实现程序控制.以下介绍一点matlab编程的技巧. 嵌套计算 程序执行的速度取决于调用的子程序的个数和算法实现. ...

  5. PID各环节的意义和功能,自带PID的matlab编程实例

    这是PID的标准形式包括比例/积分/微分三部分,e为偏差 下面我们分析三个环节的作用,设:当前系统状态A,目标状态B, e=B-A,初始状态e>0 (以下是个人的理解,欢迎读者评论) 1 比例环 ...

  6. Matlab编程基础

    平台:Win7 64 bit,Matlab R2014a(8.3) “Matlab”是“Matrix Laboratory” 的缩写,中文“矩阵实验室”,是强大的数学工具.本文侧重于Matlab的编程 ...

  7. Todd's Matlab讲义第2讲:Matlab 编程

    Matlab也可以编程,可存为以.m为后缀的文件,称为M文件.M文件有两种:函数和脚本. 函数程序 点击新建图标,在打开的窗口里输入如下内容: function y = myfunc (x) y = ...

  8. 【Matlab编程】Matlab高效编程技巧

    1.默认状态下,matlab显示精度是short型,而默认的计算精度是double型,并且显示精度与计算精度没有关系. 2. 一只失明的猫的问题:注意方法! 3.给数组预分配空间是基本的高效编程准则之 ...

  9. Matlab 编程入门(一):编程基础

    上学期学了一些matlab的知识,这学期再用时竟然发现已经忘得差不多了(┬_┬) 于是决定重新开始并将它们记录下来,也方便自己以后查漏补缺! M文件编程 脚本文件 matlab有自己的命令行窗口,对于 ...

  10. Matlab编程知识点

    容易忘记的小知识点: Matlab程序首行程序: clear:close all:clc:程序运行开始最好清理下之前残留的各种数据,不然matlab可能会出错. clear(清理变量空间),close ...

随机推荐

  1. Devexpress VCL Build v2013 vol 13.2.4 发布

    不说了,自己看吧. What's New in 13.2.4 (VCL Product Line)   New Major Features in 13.2 What's New in VCL Pro ...

  2. 树莓派安装mono

    http://www.mono-project.com/download/ sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --r ...

  3. Spinner功能和用法

    书中只是简单写了选择的界面,没有写出选择之后的结果显示,我做了进一步功能. MainActivity.java public class MainActivity extends Activity { ...

  4. python 取整itertools

    #coding:utf-8 import sys import itertools def MaxString(n,nums): list1 = nums list2 = [] for i in ra ...

  5. 关于FIR的modelsim

    (1)FIR ip核仿真 (2)FIR 多通道应用 (3)多通道fir ip核需要注意的复位问题 =================================================== ...

  6. Windows命令行参数(不断更新)

    这里先讲一下系统变量: 注意:一旦将路径加入到环境变量Path中,那么运行它下面的程序的时候就不用非得指定到目标路径中,直接键入命令就行了. 1.type命令:打开并读取文件里面的内容. C:\Use ...

  7. memCachedClient 客户端调用时注意的问题,坑

    // 第三个参数为计算该消息在服务器存放位置用 memCachedClient.add("someKey", "someValue", 10*24*60*60* ...

  8. PAT甲 1006. Sign In and Sign Out (25) 2016-09-09 22:55 43人阅读 评论(0) 收藏

    1006. Sign In and Sign Out (25) 时间限制 400 ms 内存限制 65536 kB 代码长度限制 16000 B 判题程序 Standard 作者 CHEN, Yue ...

  9. OpenGL中的旋转是可以叠加的?

    OpenGL中的旋转是可以叠加的? 1. opengl中的旋转 如:glrogtate(45.0f, 0, 0, 1),是将当前坐标系顺时针旋转45度,然后绘制, 程序如下: ; float line ...

  10. poj2462

    看八戒在做这个题,我也做了做.. 坑很多,还是要注意细节.不得不吐槽,难道又到了计算几何只能套模板否则就一串WA的情况了么! 要不是八戒做出来了,这题我估计我也就扔到这里了..哥不服啊~所以得做出来! ...