恒润科技:《MATLAB 基础与编程入门》第三章 MATLAB 编程入门

MATLABC基础与编程入门 恒润科技 HIRAIN TECHNOLOGIES MATLAB编程入门 HiRain Technologies
MATLAB®基础与编程入门 MATLAB 编程入门

恒润科技 HiRain Technologies HIRAIN TECHNOLOGIES 本章概述 ■流程控制和数组操作 ■性能提高 函数结构语法 子函数 ■私有函数 ■嵌套的函数 ■变量和工作区 ■可视化调试和剖析 www.hirain.com
2 本章概述 ◼ 流程控制和数组操作 ◼ 性能提高 ◼ 函数结构语法 ◼ 子函数 ◼ 私有函数 ◼ 嵌套的函数 ◼ 变量和工作区 ◼ 可视化调试和剖析

恒润科技 HiRain Technologies HIRAIN TECHNOLOGIES MATLAB路径 ■ MATLAB路径: MATLAB搜索路径(包括 toolbox目录) 路径缓存: Toolbox下文件和位置的清单 在程序启动时建立,以提高运行速度 路径设置: Path browser(命令 PATHTOOL) path, addpath, empath www.hirain.com
3 MATLAB路径 MATLAB路径: MATLAB 搜索路径(包括\toolbox目录) 路径缓存: \toolbox下文件和位置的清单 在程序启动时建立,以提高运行速度 路径设置: Path browser(命令PATHTOOL) path, addpath,rmpath

恒润科技 HiRain Technologies HIRAIN TECHNOLOGIES 流程控制结构 ■逻辑控制: )if /elseif /else switch/ case/otherwise ■循环体: for while www.hirain.com
4 流程控制结构 逻辑控制: if / elseif / else switch / case / otherwise 循环体: for while

恒润科技 HiRain Technologies HIRAIN TECHNOLOGIES 逻辑控制程序结构 ■条件语句的使用 ■ MATLAB中的跳转一一旦条件为真,或条件匹配,则中断 当前的顺序执行方式 ■涉及字符串操作时使用 switch-case语句比 elseif更有效 if工 switch algori thm A(工,J)=2 case 'ode23 elseif abs(I-j)== 1 str = 2nd/3rd order I A(工,J)=-1; 1 case [ ''ode23s' A(,J)=0; str= 'stiff system'i end otherwise str ' other algori thm'i end >>if examp switch examp www.hirain.com
5 逻辑控制程序结构 条件语句的使用 MATLAB中的跳转—一旦条件为真,或条件匹配,则中断 当前的顺序执行方式 涉及字符串操作时使用switch-case语句比elseif更有效 if I == J A(I,J) = 2; elseif abs(I-J) == 1 A(I,J) = -1; else A(I,J) = 0; end switch algorithm case 'ode23' str = '2nd/3rd order'; case {'ode15s', 'ode23s'} str = 'stiff system'; otherwise str = 'other algorithm'; end >> if_examp >> switch_examp

恒润科技 HiRain Technologies HIRAIN TECHNOLOGIES 循环结构 ■类似其它编程语言 ■for-按指定循环次数重复循环体(基于索引) ■ While-重复循环体,直到逻辑条件返回值为 false 可以进行循环嵌套 N=10; 工=1;N=10; 1:N while I for丁=1:N 丁〓 A(工,J)=1/(工+J-1); while < n end A(工,J)=1/(工+J-1); end J+1; nd 工 工+1; end for examp while examp www.hirain.com
6 循环结构 类似其它编程语言 for-按指定循环次数重复循环体(基于索引) While-重复循环体,直到逻辑条件返回值为false 可以进行循环嵌套 I = 1; N = 10; while I > for_examp >> while_examp N = 10; for I = 1:N for J = 1:N A(I,J) = 1/(I+J-1); end end

恒润科技 HiRain Technologies HIRAIN TECHNOLOGIES 提高性能—向量化(省略了fo循环) ■使用循环(多数语言): M=rand(5,10000);=rand(5,10000) W=rand(5,10000);H=rand(5,10000) [rows, cols] size(m) foyT=1:。ws for j 1: col Density(工,J)=M(工,J)/(L(工,J)*W(工,J)*(工,J)); end end ■使用数组操作( MATLAB): Density M./(工.*W.★H); > array vs1o。ps www.hirain.com
7 提高性能—向量化(省略了for循环) 使用循环 (多数语言): M = rand(5,10000); L = rand(5,10000); W = rand(5,10000); H = rand(5,10000); [rows, cols] = size(M); for I = 1:rows for J = 1:cols Density(I,J) = M(I,J)/(L(I,J)*W(I,J)*H(I,J)); end end Density = M./(L.*W.*H); >> array_vs_loops 使用数组操作 (MATLAB):

恒润科技 HiRain Technologies HIRAIN TECHNOLOGIES 提高性能:内存预分配 ■两种做法产生相同的向量: £orI=1:10000 prea11o=zex。s(10000,1); not pre a11o(工) rand(1);|oxI=1:10000 end prea11o(工)=rand(1) end ■开始时预置变量,开辟连续的存储空间(10000单元) ■防止 MATLAB在内存中寻找10000个大小不同的内存块 pre allocate www.hirain.com 8
8 提高性能:内存预分配 两种做法产生相同的向量: for I = 1:10000 not_pre_allo(I) = rand(1); end pre_allo = zeros(10000,1); for I = 1:10000 pre_allo(I) = rand(1); end 开始时预置变量,开辟连续的存储空间(10000单元) 防止 MATLAB 在内存中寻找10000个大小不同的内存块 >> pre_allocate

恒润科技 HiRain Technologies HIRAIN TECHNOLOGIES 函数 ■ MATLAB核心(内建)函数 sin, abs, exp ■ MATLAB提供的m-文件函数 mean, std ■用户创建的m文件函数 无论何时您想到什么好主意您都可以 脚本和函数m-文件的差异 结构语法 函数工作区,输入和输出 www.hirain.com 9
9 函数 MATLAB核心(内建)函数 sin, abs, exp, … MATLAB提供的m-文件函数 mean, std, … 用户创建的m-文件函数 无论何时您想到什么好主意您都可以…… 脚本和函数m-文件的差异 结构语法 函数工作区,输入和输出

恒润科技 HiRain Technologies HIRAIN TECHNOLOGIES 函数M文件的结构 关键字: function 函数名(与文件名相同 name, n) 输出参数 输入参数 function Y mymean(x) 8MYMEAN Average or mean value 8 For vectors, MYMEAN (x) returns the mean value 在线帮助 8 For matrices, MYMEAN (x) is a row vector containing the mean value of each column [m, n= size(x)i if m MATLAB 代码 m ni nd y sum(x)/m; >> output value= Yunan( input va1ue)—命令行语法 www.hirain.com
10 函数M-文件的结构 function y = mymean(x) %MYMEAN Average or mean value. % For vectors, MYMEAN(x) returns the mean value. % For matrices, MYMEAN(x) is a row vector % containing the mean value of each column. [m,n] = size(x); if m == 1 m = n; end y = sum(x)/m; 关键字:function 函数名(与文件名相同 name .m) 输出参数 输入参数 在线帮助 MATLAB 代码 >> output_value = mymean(input_value) 命令行语法
按次数下载不扣除下载券;
注册用户24小时内重复下载只扣除一次;
顺序:VIP每日次数-->可用次数-->下载券;
- 恒润科技:《MATLAB 基础与编程入门》第二章 MATLAB 图形基础.ppt
- 恒润科技:《MATLAB 基础与编程入门》第一章 MATLAB 基础.ppt
- 《计算机软件技术基础》第9九章 函数.ppt
- 《计算机软件技术基础》第8章 流程控制语句.ppt
- 《计算机软件技术基础》第7章 运算符和表达式.ppt
- 《计算机软件技术基础》第6章 基本数据类型.ppt
- 《计算机软件技术基础》第5章 C语言基础.ppt
- 《计算机软件技术基础》第4章 计算机实用技术基础.ppt
- 《计算机软件技术基础》第3章 数据库技术基础.ppt
- 《计算机软件技术基础》第2章 软件工程基础.ppt
- 《计算机软件技术基础》第1章 软件技术基础.ppt
- 《计算机软件技术基础》第14章 文件.ppt
- 《计算机软件技术基础》第13章 结构体与共用体.ppt
- 《计算机软件技术基础》第12章 指针.ppt
- 《计算机软件技术基础》第11章 预处理.ppt
- 《计算机软件技术基础》第10章 数组.ppt
- 《中文版AutoCAD 2007实用教程》第9章 使用面域与图案填充.ppt
- 《中文版AutoCAD 2007实用教程》第8章 绘制与编辑复杂二维图形对象.ppt
- 《中文版AutoCAD 2007实用教程》第6章 控制图层显示.ppt
- 《中文版AutoCAD 2007实用教程》第5章 规划和管理图层.ppt
- 恒润科技:《MATLAB 基础与编程入门》第四章 文件输入与输出.ppt
- 恒润科技:《MATLAB 基础与编程入门》第五章 GUIDE 图形用户界面入门.ppt
- 《高级语言C++程序设计》教材教学实验讲义(第二版)实验1 熟悉和使用vc集成开发环境(IDE).doc
- 《高级语言C++程序设计》教材PPT教学课件(第二版)第一章 绪论(主编:刘景、周玉龙).ppt
- 《高级语言C++程序设计》教材PPT教学课件(第二版)第七章 类与对象.ppt
- 《高级语言C++程序设计》教材PPT教学课件(第二版)第三章 基本数据类型与基本运算.ppt
- 《高级语言C++程序设计》教材PPT教学课件(第二版)第二章 C++语言初步.ppt
- 《高级语言C++程序设计》教材PPT教学课件(第二版)第五章 函数、函数与运算符的重载.ppt
- 《高级语言C++程序设计》教材PPT教学课件(第二版)第八章 继承与派生.ppt
- 《高级语言C++程序设计》教材PPT教学课件(第二版)第六章 指针、引用与动态内存分配.ppt
- 《高级语言C++程序设计》教材PPT教学课件(第二版)第四章 基本控制结构与导出数据类型.ppt
- 湖南软件职业技术学院:《C语言程序设计》第十章 带参数的函数(危孟君).ppt
- 湖南软件职业技术学院:《C语言程序设计》第五章 循环结构程序设计(危孟君).ppt
- 湖南软件职业技术学院:《C语言程序设计》第六章 数组(危孟君).ppt
- 湖南软件职业技术学院:《C语言程序设计》第七章 函数应用程序设计(危孟君).ppt
- 湖南软件职业技术学院:《C语言程序设计》编译预处理命令(危孟君).ppt
- 湖南软件职业技术学院:《C语言程序设计》第八章 指针(危孟君).ppt
- 湖南软件职业技术学院:《C语言程序设计》第一章 C语言概述(危孟君).ppt
- 湖南软件职业技术学院:《C语言程序设计》第二讲 算法(危孟君).ppt
- 湖南软件职业技术学院:《C语言程序设计》第六章 数组应用程序设计(危孟君).ppt