Matlab 编程
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分支结构
if condition1 statement1 elseif condition2 statement2 else statement3 end3. switch - case结构
switch expression case value1 statement1 case value2 statement2 . . otherwise statement end4. try - catch
try command1 %command1总是首先被执行。若正确,执行完成后结束此结构 catch command2 %command1执行发生错误时,执行command2 end5. for循环
for variable = start : increment : end commands end6. while循环
- while 和 for 循环的区别在于,while 循环的循环体被执行的次数是不确定的,而 for 循环是确定的
- 若 while 指令后的表达式为空数组,则默认值为假,直接结束循环
while expression statement end7. 其他指令
- 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 编程的更多相关文章
- MATLAB 编程风格指南及注意事项
MATLAB编程风格指南Richard Johnson 著Genial 译MATLAB 编程风格指南Richard JohnsonVersion 1.5,Oct. 2002版权: Datatool 所 ...
- 【Matlab编程】哈夫曼编码的Matlab实现
在前年暑假的时候,用C实现了哈夫曼编译码的功能,见文章<哈夫曼树及编译码>.不过在通信仿真中,经常要使用到Matlab编程,所以为了方便起见,这里用Matlab实现的哈夫曼编码的功能.至于 ...
- 一些matlab教程资源收藏,使用matlab编程的人还是挺多的
Matlab教程专题资源免费下载整理合集收藏 <MATLAB从入门到精通>高清文字版[PDF] 103.9MB 简体中文 <矩阵实验室>(Mathworks.Matlab.R2 ...
- MATLAB编程技巧
[摘要] MATLAB是一种科学计算语言,和C.Fortran等高级语言相类似,能方便的实现程序控制.以下介绍一点matlab编程的技巧. 嵌套计算 程序执行的速度取决于调用的子程序的个数和算法实现. ...
- PID各环节的意义和功能,自带PID的matlab编程实例
这是PID的标准形式包括比例/积分/微分三部分,e为偏差 下面我们分析三个环节的作用,设:当前系统状态A,目标状态B, e=B-A,初始状态e>0 (以下是个人的理解,欢迎读者评论) 1 比例环 ...
- Matlab编程基础
平台:Win7 64 bit,Matlab R2014a(8.3) “Matlab”是“Matrix Laboratory” 的缩写,中文“矩阵实验室”,是强大的数学工具.本文侧重于Matlab的编程 ...
- Todd's Matlab讲义第2讲:Matlab 编程
Matlab也可以编程,可存为以.m为后缀的文件,称为M文件.M文件有两种:函数和脚本. 函数程序 点击新建图标,在打开的窗口里输入如下内容: function y = myfunc (x) y = ...
- 【Matlab编程】Matlab高效编程技巧
1.默认状态下,matlab显示精度是short型,而默认的计算精度是double型,并且显示精度与计算精度没有关系. 2. 一只失明的猫的问题:注意方法! 3.给数组预分配空间是基本的高效编程准则之 ...
- Matlab 编程入门(一):编程基础
上学期学了一些matlab的知识,这学期再用时竟然发现已经忘得差不多了(┬_┬) 于是决定重新开始并将它们记录下来,也方便自己以后查漏补缺! M文件编程 脚本文件 matlab有自己的命令行窗口,对于 ...
- Matlab编程知识点
容易忘记的小知识点: Matlab程序首行程序: clear:close all:clc:程序运行开始最好清理下之前残留的各种数据,不然matlab可能会出错. clear(清理变量空间),close ...
随机推荐
- 2018.08.04 spoj TTM to the moon(主席树)
spoj传送门 vjudge传送门 主席树板子题. 支持历史版本的区间和,区间和,区间修改和时光倒流. 其中新奇一点的也只有区间修改了,这个东西直接标记永久化就行了. 如果想下传标记的话也行,需要在p ...
- 浮点数转byte数组
; float b=34.56745f; float c=0.0; ,,,}; byte* t=fbs; float2Bytes(t,b); unsigned int addrF=(unsigned ...
- 动态链接库编程:非MFC DLL
设计一个DLL,内含一个函数计算a+b: DLL的组成 .h(头文件) 定义了DLL能够导出的函数.数据结构或类的声明,该文件的声明内容在.CPP文件中实现,而.CPP的源程序被封装到DLL文件中 . ...
- 获取iOS 设备上崩溃日志 (Crash Log)的方法
1. iTunes同步获取 大部分用户会使用iTunes软件来管理iPhone,这样同步的Crash日志就会同步到电脑上,我们需要在特定的路径里面查找 Mac OS X:~/Library/Logs/ ...
- android DDMS中的内存监测工具Heap
DDMS中自带的Heap工具可以显示出当前堆内存的情况,分配内存.剩余的内存等信息. 首先是进入DDMS,运行应用,在DDMS的左边区域选中应用的包名,然后点击上方的update heap图标. 点击 ...
- hdu1302 The Snail
题目 题目大意: 一只蜗牛在H英尺高的底部,想爬到顶端.蜗牛可以在太阳升起的时候爬上U英尺,但是在晚上睡觉的时候会滑下D英尺.蜗牛的疲劳系数为F(百分比), ...
- hdu 5009 离散化
http://acm.hdu.edu.cn/showproblem.php?pid=5009 有一段序列,涂连续一段子序列的代价为该子序列出现不同数字个数的平方,求最小代价涂完整个序列. ai有10^ ...
- KMP回顾学习
记住这张图,getnext就是对一个已知的待匹配的串进行分析,nex[i]表示当a[i]匹配失败后我能跳到哪里,继续尝试匹配,而不是每一次失败都从头再来,先来看看代码 const int maxn = ...
- spring案列——xml配置
一.需要的jar包 spring.jar(官网下载) commons-logging.jar 二.项目结构 三.entity(实体类) package com.team.model; public c ...
- [ACM_动态规划] hdu1003 Max Sum [最大连续子串和]
Problem Description Given a sequence a[1],a[2],a[3]......a[n], your job is to calculate the max sum ...