王国利信息科学与技术学院中山大学
http://human-robot.sysu.edu.cn
Matlab计算与仿真技术第七讲,Matlab编程 -I
http://human-robot.sysu.edu.cn/course
Matlab计算与仿真
Matlab编程 -I
第七讲提纲
Matlab计算与仿真
Matlab编程
程序设计概述
- 基本概念程序,数据结构 +算法注解,数据结构定义操作对象算法定义求解过程
- 必要性问题求解需要复杂算法交互计算方式难以满足
Matlab计算与仿真
Matlab编程 (续 )
程序结构
- 顺序结构逐条顺序执行程序指令或 模块
- 选择结构依据条件选择执行程序指令或 模块
if 语句 % 条件选择
switch 语句 % 多值切换
Matlab计算与仿真
Matlab编程 (续 )
- 循环结构根据条件重复执行程序指令或模块
for 语句 % 计数循环
while 语句 % 条件循环
Matlab计算与仿真
Matlab编程 (续 )
M-文件概述
m-编辑器,创建以 m为结尾标志的 asccii文件分类:脚本文件 /函数文件
- 脚本文件 (script)
执行批处理行命令文件名:默认的宏命令全局性,与工作空间共享变量名适用性:实现小规模简单的问题求解
Matlab计算与仿真
Matlab编程 (续 )
- 函数文件创建用户自己功能函数的方式允许参数传递机制定制求解允许局部变量,与工作空间隔离允许函数嵌套,子函数方式主函数,第一行定义的函数子函数:被同一文件其他函数调用的函数允许属性控制,私有函数方式私有函数,存放在 Private目录下只能被上级目录函数调用
Matlab计算与仿真
Matlab编程 (续 )
- M-文件编程 (Programming)
m-文件编辑器
>> edit drawPlot.m; % 创建或编辑 m文件
>> edit; % 启动编辑器
GUI方式激活在桌面激活新文件图标利用文件另存创建文件
m-文件编辑器 GUI
文件操作,file? new/open/save/…
编辑操作,edit?cut/copy/paste/…
调试操作,debug?…/run/…
Matlab计算与仿真
Matlab编程 (续 )
- 程序运行程序定位查询用法举例,
>> which drawPlot
D:\matlabR14\work\drawPlot.m
添加路径操作用法举例,
>> addpath('D:\matlabR14\work')
或在桌面 GUI模块操作程序运行
>> drawPlot(xdata,ydata)
Matlab计算与仿真
Matlab编程 (续 )
- m-文件的结构脚本文件文件体:行命令序列的集合再提醒:文件名即为批处理命令名没有输入和输出所有变量均保留在工作空间函数文件函数定义行:申明和定义函数名 /输入输出变量全局变量申明和定义程序体:程序指令集合(包括函数调用)
再提醒:函数名与文件名一致
Matlab计算与仿真
Matlab编程 (续 )
- 创建一个脚本文件
1,% An M-file script to produce
2,% Comment lines
3,% "flower petal" plots
4,theta = -pi:0.01:pi; % Computations
5,rho(1,:) = 2*sin(5*theta),^ 2;
6,rho(2,:) = cos(10*theta),^ 3;
7,rho(3,:) = sin(theta),^ 2;
9,rho(4,:) = 5*cos(3.5*theta),^ 3;
10 for k = 1:4
polar(theta,rho(k,:)) % Graphics output
pause
11,end
Matlab计算与仿真
Matlab编程 (续 )
- 另一个脚本程序
1,% easyplot,Script to plot data in file xy.dat
2,% Load the data
3,D = load(’xy.dat’);
4,% D is a matrix with two columns
5,x = D(:,1); y = D(:,2);
6,% x in 1st column,y in 2nd column
7,plot(x,y) % Generate the plot and label it
8,xlabel(’x axis,unknown units’)
9,ylabel(’y axis,unknown units’)
10,title(’Plot of generic x-y data set’)
Matlab计算与仿真
Matlab编程 (续 )
- 创建一个简单的 m-函数文件
1,function f = fact(n)
2,% Compute a factorial value,
3,% FACT(N) returns the factorial of N
4,% usually denoted by N!
5:
6,% Put simply,FACT(N) is PROD(1:N),
7,f = prod(1:n);
第 1行:函数定义行 —函数名 /输入 /输出第 2行:帮助提要 -help目录 /lookfor回应第 3/4行:帮助详细信息 -help函数回应第 6行:程序注释行第 7行:程序体
Matlab计算与仿真
Matlab编程 (续 )
- m-子函数实例
1,function [mean,stdev] = stat(x)
2,% STAT Interesting statistics,
3,n = length(x);
4,mean = avg(x,n);
5,stdev = sqrt(sum((x-avg(x,n)).^2)/n);
6,%-------------------------
7,function mean = avg(x,n)
8,%AVG subfunction
9,mean = sum(x)/n;
Matlab计算与仿真第八讲预告,Matlab编程 -II
( 2008年 04月 16日)
结束语
http://human-robot.sysu.edu.cn
Matlab计算与仿真技术第七讲,Matlab编程 -I
http://human-robot.sysu.edu.cn/course
Matlab计算与仿真
Matlab编程 -I
第七讲提纲
Matlab计算与仿真
Matlab编程
程序设计概述
- 基本概念程序,数据结构 +算法注解,数据结构定义操作对象算法定义求解过程
- 必要性问题求解需要复杂算法交互计算方式难以满足
Matlab计算与仿真
Matlab编程 (续 )
程序结构
- 顺序结构逐条顺序执行程序指令或 模块
- 选择结构依据条件选择执行程序指令或 模块
if 语句 % 条件选择
switch 语句 % 多值切换
Matlab计算与仿真
Matlab编程 (续 )
- 循环结构根据条件重复执行程序指令或模块
for 语句 % 计数循环
while 语句 % 条件循环
Matlab计算与仿真
Matlab编程 (续 )
M-文件概述
m-编辑器,创建以 m为结尾标志的 asccii文件分类:脚本文件 /函数文件
- 脚本文件 (script)
执行批处理行命令文件名:默认的宏命令全局性,与工作空间共享变量名适用性:实现小规模简单的问题求解
Matlab计算与仿真
Matlab编程 (续 )
- 函数文件创建用户自己功能函数的方式允许参数传递机制定制求解允许局部变量,与工作空间隔离允许函数嵌套,子函数方式主函数,第一行定义的函数子函数:被同一文件其他函数调用的函数允许属性控制,私有函数方式私有函数,存放在 Private目录下只能被上级目录函数调用
Matlab计算与仿真
Matlab编程 (续 )
- M-文件编程 (Programming)
m-文件编辑器
>> edit drawPlot.m; % 创建或编辑 m文件
>> edit; % 启动编辑器
GUI方式激活在桌面激活新文件图标利用文件另存创建文件
m-文件编辑器 GUI
文件操作,file? new/open/save/…
编辑操作,edit?cut/copy/paste/…
调试操作,debug?…/run/…
Matlab计算与仿真
Matlab编程 (续 )
- 程序运行程序定位查询用法举例,
>> which drawPlot
D:\matlabR14\work\drawPlot.m
添加路径操作用法举例,
>> addpath('D:\matlabR14\work')
或在桌面 GUI模块操作程序运行
>> drawPlot(xdata,ydata)
Matlab计算与仿真
Matlab编程 (续 )
- m-文件的结构脚本文件文件体:行命令序列的集合再提醒:文件名即为批处理命令名没有输入和输出所有变量均保留在工作空间函数文件函数定义行:申明和定义函数名 /输入输出变量全局变量申明和定义程序体:程序指令集合(包括函数调用)
再提醒:函数名与文件名一致
Matlab计算与仿真
Matlab编程 (续 )
- 创建一个脚本文件
1,% An M-file script to produce
2,% Comment lines
3,% "flower petal" plots
4,theta = -pi:0.01:pi; % Computations
5,rho(1,:) = 2*sin(5*theta),^ 2;
6,rho(2,:) = cos(10*theta),^ 3;
7,rho(3,:) = sin(theta),^ 2;
9,rho(4,:) = 5*cos(3.5*theta),^ 3;
10 for k = 1:4
polar(theta,rho(k,:)) % Graphics output
pause
11,end
Matlab计算与仿真
Matlab编程 (续 )
- 另一个脚本程序
1,% easyplot,Script to plot data in file xy.dat
2,% Load the data
3,D = load(’xy.dat’);
4,% D is a matrix with two columns
5,x = D(:,1); y = D(:,2);
6,% x in 1st column,y in 2nd column
7,plot(x,y) % Generate the plot and label it
8,xlabel(’x axis,unknown units’)
9,ylabel(’y axis,unknown units’)
10,title(’Plot of generic x-y data set’)
Matlab计算与仿真
Matlab编程 (续 )
- 创建一个简单的 m-函数文件
1,function f = fact(n)
2,% Compute a factorial value,
3,% FACT(N) returns the factorial of N
4,% usually denoted by N!
5:
6,% Put simply,FACT(N) is PROD(1:N),
7,f = prod(1:n);
第 1行:函数定义行 —函数名 /输入 /输出第 2行:帮助提要 -help目录 /lookfor回应第 3/4行:帮助详细信息 -help函数回应第 6行:程序注释行第 7行:程序体
Matlab计算与仿真
Matlab编程 (续 )
- m-子函数实例
1,function [mean,stdev] = stat(x)
2,% STAT Interesting statistics,
3,n = length(x);
4,mean = avg(x,n);
5,stdev = sqrt(sum((x-avg(x,n)).^2)/n);
6,%-------------------------
7,function mean = avg(x,n)
8,%AVG subfunction
9,mean = sum(x)/n;
Matlab计算与仿真第八讲预告,Matlab编程 -II
( 2008年 04月 16日)
结束语