2010年桂林理工大学数学建模竞赛暑期培训班 MATLAB编程入门培训课程

Slides:



Advertisements
Similar presentations
國立成功大學工程科學系 Department of Engineering Science -National Cheng Kung University 控制與訊號處理實驗室 Control & Signal Processing Lab MATLAB/Simulink 教學.
Advertisements

1 —— 数学软件 计算机应用基础. 2 数学软件 论文排版: LaTeX , Word , Powerpoint 程序设计: FORTRAN , C/C++ 数值计算: Matlab , Scilab 符号计算: Mathematica , Maple 统计软件: SAS , SPSS 数学规划:
Matlab 教學 Speaker :陳珮妮 Date : 2013/03/14 1. Outline  MATLAB 簡介  算術邏輯運算  Matlab 陣列  Matlab 矩陣 2.
第六讲 MATLAB 语言程序设计 6.1 MATLAB语言的函数的基本结构 6.2 全局、局部变量、子函数与私有目录
2011级高考地理复习(第一轮) 第三篇 中国地理 第一章 中国地理概况 第五节 河流和湖泊.
SCILAB第二章 二維平面繪圖 撰文者: 1.中央大氣科學系 楊善文 2. (如對本文有貢獻者,記得在此留名)
述 职 报 告 ——报告人:xxxxx.
—— matlab 具有出色的数值计算能力,占据世界上数值计算软件的主导地位
黃聰明 臺灣師範大學數學系 MATLAB 基本功能介紹 黃聰明 臺灣師範大學數學系.
算法设计与分析 Algorithm Design and Analysis
MATLAB小结、 经典迭代法、CG.
Introduction to Matlab
Matlab教學 Speaker:林昱志 Date:2012/10/18.
1012 MATLAB 教學 彭奕翔 2013/02/27.
数学软件 Matlab —— 二维平面作图 —— 三维空间作图.
数值计算的工具—MATLAB 电子计算机技术为应用数学解决实际问题创造了物质条件 。
全球工程師共同的語言 MathWorks 台灣總代理鈦思科技 指導老師 : 郭艷光教授 報告者 : 吳育驊
第七讲 matlab的程序设计 —— matlab语言称为第四代编程语言,程序简洁、可读性很强而且调试十分容易。
Matlab及其应用 鲍文 哈尔滨工业大学 先进动力控制与可靠性研究所
第2章 Fortran程序设计基础.
第1章 MATLAB概述 1.1 MATLAB 7.x简介 是Matrix Laboratory的缩写,它将计算、可视化和编程功能于一身,是一个开放的基于矩阵的交互式开发系统。主要用于数学计算、系统建模与仿真、数据分析与可视化等。(Mathworks始创于1984) MATLAB的系统结构.
第一章 概 述 1.1 MATLAB产品族简介 1.2 MATLAB的桌面环境 1.3 Command Windows和MATLAB指令
MATLAB介紹.
第3章 矩阵、数组和符号运算 一、矩阵和数组运算 要求内容: ( 1)熟练掌握矩阵的创建。 ( 2)掌握矩阵运算和数组运算。
張智星 清大資工系 補充內容:方煒 台大生機系 小幅修改:吳俊仲 長庚機械系
張智星 清大資工系 補充內容:方煒 台大生機系
范洪源 臺灣師範大學數學系 MATLAB 基本功能介紹 范洪源 臺灣師範大學數學系.
數學與電腦 的初相識 汪群超 個人網址: 變有不可者三,有不可不變者三: 能力未至不可變也、 學識未敷不得變也、 功侯未到不能變也。
Z Mathematical Model ‡ ' MATLAB简介.
MATLAB、CTEX简介 及其 在教学中的应用
第一讲 MATLAB简介 1.1 MATLAB与通信仿真 1.1.1 通信电路与系统仿真 1.1.2 MATLAB的发展史
Application of Matlab Language
Learning Polynomials 台大生機系 方煒.
University of Electronic Science and Technology, China
程式流程控制 方煒 台大生機系.
Matlab基础介绍 Matlab 简介 Matlab 的安装与启动 Matlab 编程基础 Matlab 在数字信号处理课程中的应用.
黃聰明 國立臺灣師範大學數學系 MATLAB 基本功能介紹 黃聰明 國立臺灣師範大學數學系
数据、模型与决策 汕头大学商学院 林佳丽.
引 言.
Introduction to MATLAB
算法与程序设计 周少品.
数学建模与数学实验 MATLAB作图.
MATLAB及其应用 第三讲 数据处理 授课人:鲍文 在此幻灯片插入公司的徽标 从“插入”菜单 选择图片 找到徽标文件 单击“确定”
范洪源 臺灣師範大學數學系 分支宣告與程式設計 范洪源 臺灣師範大學數學系.
授課教授:張寶基 助教:梁凱雯 郭千豪 音視訊處理實驗室 2014 / 9 / 30
第1章 MATLAB操作基础 1.1 绪论 1.2 MATLAB概述 1.3 MATLAB的运行环境与安装 1.4 MATLAB集成环境 1.5 MATLAB帮助系统.
用相频曲线测阻尼系数的探索 指导教师 陈乾 吉新程.
MATLAB 程式設計入門篇 初探MATLAB
MATLAB 程序设计语言 任课教师:刘毅 西安电子科技大学 ISN国家重点实验室.
MATLAB介绍 Matlab基本命令介绍 Matlab矩阵运算 Matlab控制流 Matlab图像处理工具箱 实习题讲解.
数学建模 江西财经大学 数学与管理决策系 制作:华长生 华长生制作.
1.函数 2.程序 3.图形 目的:掌握Matlab作平面曲线图的方法与技巧
MATLAB 入门教程.
数学实验与MATLAB简介  课程的背景和基本要求 MATLAB 使用简介 MATLAB 常用函数介绍 宝石切割问题实验.
MATLAB 程式設計入門篇 初探MATLAB
Transportation Problem
MATLAB 程式設計入門篇 初探MATLAB
第二章 MATLAB编程与作图 2.1 程序设计 2.2 作图 2.3 在线帮助和文件管理 2.4 习题 2019年4月23日
科学计算软件 华南师范大学数学科学学院.
第一单元 第1课 Matlab概述 1.MATLAB 2.工具箱 3.高效数值计算功能 4.完备的计算结果和编程可视化功能
西南科技大学网络教育系列课程 数学软件 数学软件 第3讲 MATLAB数组与运算 主讲教师: 鲜大权 副教授 西南科技大学理学院数学系.
MATLAB 程式設計進階篇 多項式的處理與分析
第4章 MATLAB数值运算 编者.
Introduction to Matlab
第7章 MATLAB工程计算.
MATLAB 实用教程.
數學遊戲二 大象轉彎.
原版:清大資工系 張智星 新增版:方煒 台大生機系
第2章 MATLAB的基本语法 2.1 变量及其赋值 2.2 运算符与数学表达式 2.3 控制流 2.4 数据的输入输出及文件的读写
数学是知识的工具,亦是其它知识工具的泉源。 ——勒内·笛卡尔
Presentation transcript:

2010年桂林理工大学数学建模竞赛暑期培训班 MATLAB编程入门培训课程 桂林理工大学理学院信息与计算科学教研室 艾武

学习方法 MATLAB 基础入门 设计提高 综合应用 MATLAB简介 MATLAB基本操作 MATLAB常用命令 MATLAB数组运算

课程目录 MATLAB简介 1 MATLAB语言基础 2 MATLAB数值计算 3 MATLAB程序设计 4 MATLAB绘图 5

1. MATLAB简介

1. MATLAB简介 1.1 MATLAB发展历史 1.2 MATLAB应用领域 1.3 MATLAB工具箱 1.4 MATLAB安装文件 1.8 上机练习

1. MATLAB简介 http://www.mathworks.com Matlab——Matrix Laboratory Cleve Moler Matlab——Matrix Laboratory, 该语言是美国New Mexico大学计算机系主任Cleve Moler在70年代后期首先设计的. 并于80年代初开发了第二代专业版. 1984年, Cleve Moler和John Litter成立了Math works公司, 并开始把Matlab推向市场. (迈斯沃克公司) http://www.mathworks.com Matlab——Matrix Laboratory

Mathematica Maple SAS SPSS Eviews LINGO LINDO 1. MATLAB简介 1.2 MATLAB应用领域 目前,Matlab 已经成为国际上最流行的科学与工程计算的软件 工具,它已经不仅仅是一个“矩阵实验室”了,而成为了一种具有广泛应用前景的全新的计算机高级编程语言,有人称它为“第四代”计算机语言。 就影响而言,至今仍然没有一个别的计算软件可与 Matlab 匹敌。 在欧美各高等院校,Matlab已经成为线性代数、自动控制理论、数字信号处理、时间序列分析、动态系统仿真、图像处理等课程的基本教学工具,成为大学生、硕士生以及博士生必须掌握的基本技能。 Mathematica Maple SAS SPSS Eviews LINGO LINDO

1. MATLAB简介 1.3 MATLAB工具箱 Matlab Main Toolbox Matlab主工具箱 Control System Toolbox 控制系统工具箱 Communication Toolbox 通讯工具箱 Financial Toolbox 财政金融工具箱 System Identification Toolbox 系统辨识工具箱 Fuzzy Logic Toolbox 模糊逻辑工具箱 Higher-Order Spectral Analysis Toolbox 高阶谱分析工具箱 Image Processing Toolbox 图像处理工具箱 LMI Control Toolbox 线性矩阵不等式工具箱 Model predictive Control Toolbox 模型预测控制工具箱 μ-Analysis and Synthesis Toolbox μ分析工具箱

1. MATLAB简介 1.3 MATLAB工具箱 Optimization Toolbox 优化工具箱 Partial Differential Toolbox 偏微分方程工具箱 Robust Control Toolbox 鲁棒控制工具箱 Signal Processing Toolbox 信号处理工具箱 Spline Toolbox 样条工具箱 Statistics Toolbox 统计工具箱 Symbolic Math Toolbox 符号数学工具箱 Simulink Toolbox 动态仿真工具箱 System Identification Toolbox 系统辨识工具箱 Wavelet Toolbox 小波工具箱

1. MATLAB简介 1.4 MATLAB安装文件

1. MATLAB简介 1.5 MATLAB操作界面 快捷键F5运行

1. MATLAB简介 1.6 MATLAB文件类型 .m m文件 .mat data文件 .fig figure文件 .mdl model文件 .cdr stateflow文件 .rpt report generator文件

1. MATLAB简介 1.7 MATLAB常用命令 help 帮助查询 lookfor demo 演示文档 clc 删除命令窗口的内容(已使用过的命令) clear 删除内存中的变量(数据) clf 删除图形窗口的内容 who 列出在MATLAB工作空间中已有的变量 whos 列出驻留变量的同时,还给出维数及性质 home 光标移到命令窗口的左上角 ↑ 调出刚才使用过的命令 quit 退出MATLAB Ctrl+C 中断程序运行

1. MATLAB简介 1.7 MATLAB常用命令 version 显示matlab版本 what 列出当前目录下的.m文件和.mat文件 which <文件名> 显示某个文件的路径 load name 下载name文件中的所有变量到工作空间 load name x y 下载name文件中的变量x, y到工作空间 save name 保存工作空间变量到文件name.mat中 save name x y 保存工作空间变量x, y到文件name.mat中 size (变量名) 显示当前工作空间中变量的尺寸 length (变量名) 显示当前工作空间中变量的长度 pack 整理工作空间内存 vpa(x,n) 显示n位小数的x disp 显示矩阵与文本

1. MATLAB简介 1.8 上机练习

2. MATLAB语言基础

2. MATLAB语言基础 2.1 MATLAB数据类型 2.2 MATLAB数组运算 2.3 MATLAB向量运算 2.8 上机练习

2. MATLAB语言基础 MATLAB 2.1 MATLAB数据类型 1. 数值型 2. 字符字符串 3. 元胞数组 4. 架构数组

2. MATLAB语言基础 Matlab中变量名是以字母开头,可以由字母、数字或下划线组成

2. MATLAB语言基础 2.1 MATLAB数据类型 常量 ans Matlab中的默认变量 pi 圆周率 eps 计算机中的最小数,浮点运算的相对精度 inf 无穷大,如 1/0 NaN 不定值,如 0/0、0*∞ i 或 j 复数中的虚数单位 realmin 最小可用正实数 realmax 最大可用正实数

2. MATLAB语言基础 2.1 MATLAB数据类型 数字显示格式命令 format short 5位定点表示 format long 15位定点表示 format short e 5位浮点表示 format long e 15位浮点表示 format short g 5位定点和5位浮点中自动选择最好格式表示 format long g 15位定点和15位浮点中自动选择最好格式表示 format hex 16进制格式表示 format + 在矩阵中,用符号+、-和空格表示正号、负号和零

2. MATLAB语言基础 Matlab中的表达式由运算符、函数、变量名和数字组成 Matlab 语句由变量和表达式组成,有两种常见形式: 形式1:表达式 形式2:变量=表达式 若不想显示形式1或2的运算结果,可在表达式后加分号“;”

2. MATLAB语言基础 + 加法 - 减法 * 乘法 .* 点乘 / 除法 ./ 点除 ^ 乘幂 .^ 点乘幂 \ 左除 .\ 点左除

2. MATLAB语言基础 2.2 MATLAB数组运算 数组的构造 手动法 数组用中括号,以空格或逗号为间隔输入元素 手动法 数组用中括号,以空格或逗号为间隔输入元素 x=[0 1 3 5 7 9 10] x=[0,1,3,5,7,9,10] x= 0 1 3 5 7 9 10

2. MATLAB语言基础 2.2 MATLAB数组运算 数组的构造 冒号法 a:步长:b a:b (默认 步长=1) x=[0:0.5:2] y=[0:5] x= 0 0.5000 1.0000 1.5000 2.0000 y= 0 1.0000 2.0000 3.0000 4.0000 5.0000

2. MATLAB语言基础 2.2 MATLAB数组运算 数组的构造 函数法 linspace(a,b,n) 从a开始,到b结束,包含n个数据元素的数组 [ a:(b-a)/(n-1):b ] x=linspace(0,pi,12) x= 0 0.2856 0.5712 0.8568 1.1424 1.4280 1.7136 1.9992 2.2848 2.5704 2.8560 3.1416

2. MATLAB语言基础 2.2 MATLAB数组运算 数组的引用 x(n) 表示数组中的第n个元素 x(n1:n2) 表示数组中的第n1到n2个元素 x=[1 2 3 4 5] x(1:3) ans= 1 2 3

2. MATLAB语言基础 2.2 MATLAB数组运算 矩阵数组 以空格或逗号分隔,指定不同的列 以分号或回车分隔,指定不同的行

2. MATLAB语言基础 2.2 MATLAB数组运算 四则运算 数组与标量间的四则运算 x=[1 3 4; 2, 6, 5; 3 2,4] a=2*x-2 a= 0 4 6 2 10 8 4 2 6

2. MATLAB语言基础 2.2 MATLAB数组运算 四则运算 数组间的四则运算,必须具有相同的维数,对应元素进行运算 + - .* ./ .\ a=[1 3 4;2, 6, 5;3 2,4] b=[2 3 1;4 1 2;4 5 3] c=a+b c= 3 6 5 6 7 7 7 7 7

2. MATLAB语言基础 2.2 MATLAB数组运算 四则运算 a=[1 3 4;2, 6, 5;3 2,4] c=a.*b d=a./b a./b=b.\a c= 2 9 4 8 6 10 12 10 12 d= 0.5000 1.0000 4.0000 0.5000 6.0000 2.5000 0.7500 0.4000 1.3333

2. MATLAB语言基础 2.2 MATLAB数组运算 幂运算 数组的幂运算 .^ a=[1 3 4;2, 6, 5;3 2,4] 数组的幂运算 .^ a=[1 3 4;2, 6, 5;3 2,4] c=a.^2 d=a^2 c= 1 9 16 4 36 25 9 4 16 d= 19 29 35 29 52 58 19 29 38

2. MATLAB语言基础 2.2 MATLAB数组运算 幂运算 a=[1 3 4;2, 6, 5;3 2,4] c=a.^b c= 1 27 4 16 6 25 81 32 64

2. MATLAB语言基础 2.3 MATLAB向量运算 点积 c=dot(a,b) c=a·b,相当于a*b’(a与b都是行向量) 137

2. MATLAB语言基础 2.3 MATLAB向量运算 叉积 c=cross(a,b) c=a×b,a与b必须是3维向量 0 -5 4

2. MATLAB语言基础 2.3 MATLAB向量运算 混合积 由dot和cross两个函数共同完成 abc=(a×b) ·c d=dot(a,cross(b,c)) c= 0 -5 4

2. MATLAB语言基础 max 求最大值 min 求最小值 sum 求和 length 求长度 mean 求平均值 median 求中间值 prod 乘积 sort 从小到大排序

2. MATLAB语言基础 [ ] 生成空矩阵 eye(n,m) 生成n×m单位矩阵 ones(n,m) 生成全部元素是1的矩阵 [ ] 生成空矩阵 eye(n,m) 生成n×m单位矩阵 ones(n,m) 生成全部元素是1的矩阵 zeros(n,m) 生成全部元素是0的矩阵 magic(n) 生成魔方矩阵 rand(n,m) 生成0~1之间均匀分布的随机矩阵 randn(n,m) 生成均值为0,方差为1的标准正态分布的随机矩阵 compan(a) 生产矩阵a的伴随矩阵

2. MATLAB语言基础 2.4 MATLAB矩阵运算 矩阵加法 矩阵的四则运算 A=[1 2;3 5;2 6] C=A+B C= 3 6 4 13 11 6

2. MATLAB语言基础 2.4 MATLAB矩阵运算 矩阵乘法 矩阵的四则运算 A=[1 2;3 5;2 6] D=A*B D= 18 22 1 46 57 3 52 62 2

2. MATLAB语言基础 2.4 MATLAB矩阵运算 矩阵除法 在Matlab中矩阵的除法分左除“\”和右除“/” X=A\B 给出线性方程组 AX=B 的一个解 X=B/A 给出线性方程组 XA=B 的一个解 A\B A= B= B/A sym(A\B,'r') = 5/7 1 9/7 -8/7 -1 -6/7 44/7 7 54/7 sym(B/A,'r') = -2/7 8/7 13/7 1/7 17/7 25/7 4/7 26/7 37/7

2. MATLAB语言基础 2.4 MATLAB矩阵运算 矩阵乘幂 矩阵的幂运算 ^ C=A^2 C= 3433 2074 1754 3555 3766 2631 3536 2312 2015

2. MATLAB语言基础 2.4 MATLAB矩阵运算 矩阵转置、逆、行列式 矩阵的转置、逆运算及行列式运算 C=A’ D=inv(A) e=det(A) C= 1 2 4 2 5 10 0 -1 -1 D= 5 2 -2 -2 -1 1 0 -2 1 e= 1

2. MATLAB语言基础 size 查看字符数组维数 char 把数字转换为字符串 strcmp 比较字符串 strcat 字符串连接 upper 转换为大写 lower 转换为小写 findstr 在字符串中找字符串 strjust 对齐字符数组 strmatch 查找匹配字符串 deblank 删除字符串中的空格

2. MATLAB语言基础 2.6 MATLAB关系运算 关系操作符 A=[1 4 3 5 7] B=[2 6 9 0 7] A==B ans= 0 0 0 0 1 < 小于 <= 小于等于 > 大于 >= 大于等于 == 等于 ~= 不等于 运算法则:若关系式成立,结果为1; 若关系式不成立,结果为0。

2. MATLAB语言基础 2.7 MATLAB逻辑运算 逻辑操作符 a=1:2:11 b=2:7 (a<2)|(b>6) ans= 1 0 0 0 0 1 & 与 | 或 ~ 非 运算法则: 若逻辑真,结果为1; 若逻辑假,结果为0。

2. MATLAB语言基础 2.8 上机练习

3. MATLAB数值计算

3. MATLAB数值计算 3.1 多项式运算 3.2 多项式插值 3.3 多项式拟合 3.4 上机练习

3. MATLAB数值计算 3.1 多项式 构造 poly2sym(p) p=[a0,a1,…,an],多项式降幂排列系数数组 3.1 多项式 构造 poly2sym(p) p=[a0,a1,…,an],多项式降幂排列系数数组 p=[2 5 0 4 1 4] poly2sym(p) ans= 2*x^5+5*x^4+4*x^2+x+4

3. MATLAB数值计算 3.1 多项式 四则运算 +、-、conv(p1,p2)、deconv(p1,p2) 加减要补零,相同长度 3.1 多项式 四则运算 +、-、conv(p1,p2)、deconv(p1,p2) 加减要补零,相同长度 p1=[2 5 0 4 1 4]; p2=[0 0 5 1 3 2]; p=p1+p2 poly2sym(p) ans= 2*x^5+5*x^4+5*x^3+5*x^2+4*x+6

3. MATLAB数值计算 3.1 多项式 四则运算 +、-、conv(p1,p2)、deconv(p1,p2) 3.1 多项式 四则运算 +、-、conv(p1,p2)、deconv(p1,p2) p1=[2 5 0 4 1 4]; p2=[0 0 5 1 3 2]; p=conv(p1,p2) poly2sym(p) ans= 10*x^8+27*x^7+11*x^6+39*x^5+19*x^4+33*x^3+15*x^2 +14*x+8

3. MATLAB数值计算 3.1 多项式 四则运算 +、-、conv(p1,p2)、deconv(p1,p2) 3.1 多项式 四则运算 +、-、conv(p1,p2)、deconv(p1,p2) p1=[2 5 0 4 1 4]; p2=[0 0 5 1 3 2]; [p,r]=deconv(p1,p2) p= 0.4000 0.9200 -0.4240 r= 0 0 0 0.8640 0.4320 4.8480

3. MATLAB数值计算 3.1 多项式 求导运算 polyder(p) p1=[2 5 0 4 1 4] h=polyder(p1) 3.1 多项式 求导运算 polyder(p) p1=[2 5 0 4 1 4] h=polyder(p1) poly2sym(h) ans= 10*x^4+20*x^3+8*x+1

3. MATLAB数值计算 3.1 多项式 求值运算 polyval(p,s) 数组规则 polyvalm(p,s) 矩阵规则 3.1 多项式 求值运算 polyval(p,s) 数组规则 polyvalm(p,s) 矩阵规则 p1=[2 5 0 4 1 4] h=polyval(p1,[3,4]) k=polyvalm(p1,[3,4;4,6]) h= 934 3400 k= 43414 62640 62640 90394

3. MATLAB数值计算 3.1 多项式 求根运算 roots(p) p1=[2 5 6 4 1 8] h=roots(p1) h= 3.1 多项式 求根运算 roots(p) p1=[2 5 6 4 1 8] h=roots(p1) h= -1.7640 -0.8679 + 1.3394i -0.8679 - 1.3394i 0.5000 + 0.8001i 0.5000 - 0.8001i

3. MATLAB数值计算 3.1 多项式 多项式函数 conv 多项式乘法 polyfit 多项式拟合 deconv 多项式除法法 3.1 多项式 多项式函数 conv 多项式乘法 polyfit 多项式拟合 deconv 多项式除法法 polyval 多项式求值 poly 求矩阵的特征多项式 polyvalm 多项式矩阵求值 polyder 多项式求导 residue 部分分式展开 polyeig 多项式求特征值 roots 求多项式的根

3. MATLAB数值计算 nearest 最近插值 linear 线性插值 spline 三次样条插值 cubic 三次插值 3.2 多项式插值 interp1(x,y,x1,’method’) nearest 最近插值 linear 线性插值 spline 三次样条插值 cubic 三次插值 x=4:15; y=[5 8 9 15 25 29 31 30 22 25 27 24]; x=4:0.5:15; yn=interp1(x,y,x1,’nearest’); yl=interp1(x,y,x1,linear’); ys=interp1(x,y,x1,’spline’); yc=interp1(x,y,x1,’cubic’); plot(x,y,’o’,x1,yn,’-’); plot(x,y,’o’,x1,yl,’-’); plot(x,y,’o’,x1,ys,’-’) ; plot(x,y,’o’,x1,yc,’-’);

3. MATLAB数值计算 3.3 多项式拟合 polyfit(x,y,n) x=linspace(x,y,n); y=cos(x); p=polyfit(x,y,6); y1=polyval(p,x); plot(x,y,’or’,x,y1,’-b’);

3. MATLAB数值计算 3.4 上机练习

4. MATLAB程序设计

4. MATLAB程序设计 4.1 M文件 4.2 数据的输入输出 4.3 程序结构控制 4.4 上机练习

4. MATLAB程序设计 4.1 M文件 局部变量与全局变量 global A B C 无论在脚本文件还是在函数文件中,都会定义一些变量。函数文件所定义的变量是局部变量,这些变量独立于其他函数的局部变量和工作空间的变量,即只能在该函数的工作空间引用,而不能在其他函数工作空间和命令工作空间引用。 但是如果某些变量被定义成全局变量,就可以在整个MATLAB 工作空间进行存取和修改,以实现共享。因此,定义全局变量是函数间传递信息的一种手段。

4. MATLAB程序设计 4.1 M文件 M文件的编辑

4. MATLAB程序设计 4.1 M文件 脚本文件 一些命令的集合 x=linspace(x,y,n); y=cos(x); p=polyfit(x,y,6); y1=polyval(p,x); plot(x,y,’or’,x,y1,’-b’);

4. MATLAB程序设计 4.1 M文件 函数文件 function开头,编制一个函数文件,输入什么,输出什么 [输出参数表]=函数名(输入参数表) function y=hanshu(x) y=sin(x)+cos(x);

4. MATLAB程序设计 sin(x) 正弦 asin(x) 反正弦 cos(x) 余弦 acos(x) 反余弦 tan(x) 正切 atan(x)  反正切 cot(x) 余切 acot(x) 反余切 abs(x) 绝对值 max(x) 最大值 min(x) 最小值 sum(x) 求和 sqrt(x) 开平方 exp(x) 以e为底的指数 log(x) 自然对数 log10(x) 以10为底的对数 sign(x) 符号函数 fix(x) 取整

4. MATLAB程序设计 4.2 数据输入与输出 键盘输入 屏幕输出 input disp x=input(‘请输入数据’); 4.2 数据输入与输出 键盘输入 屏幕输出 input disp x=input(‘请输入数据’); disp(x);

4. MATLAB程序设计 save 将所有工作空间变量存储在名为MATLAB.mat的文件中 save filename 将所有工作空间变量存储在名为filename.mat的文件中 save filename X Y Z 将工作空间的指定变量X、Y、Z存储在名为filename.mat的文件中

4. MATLAB程序设计 load 加载名为MATLAB.mat的文件中的所有变量到工作空间 load filename 加载名为filename.mat的文件中的所有变量到工作空间 load filename X Y Z 加载名为filename.mat的文件中的X、Y、Z变量到工作空间

4. MATLAB程序设计 4.2 数据输入与输出 外部文件导入 .xls EXCEL文件数据导入 [filename, pathname]= uigetfile('*.xls');    %寻找源文件 file=[pathname filename];                    %赋名 x=xlsread(file);                             %格式转换为矩阵 之后就用x来代表导入的这个矩阵。 如excel 里输入了 1 2 3                   4 5 6 如下命令 x(1,:) ans =       1      2      3

4. MATLAB程序设计 4.2 数据输入与输出 外部文件导入 .txt 记事本文件数据导入 [a1,a2,a3,a4]=textread('test1.txt','%s%s%s%s','headerlines',4) 说明: %s可以是其他形式,跟读入的数据类型有关,比如这里也可以用%n,%f等。 这里%s的个数和[a1,a2,a3,a4]对应。

4. MATLAB程序设计 4.2 数据输入与输出 外部文件导入 file->import data 按照提示进行 .xls .txt

4. MATLAB程序设计 4.3 程序结构控制 for循环 for 循环控制命令 循环控制命令(for命令) 格式: for i=n1:(step):n2 commands; end 作用:重复执行命令集commands.

4. MATLAB程序设计 4.3 程序结构控制 for循环 例1:求和:s=1+2+…+n n=input('请输入 n='); s=0; for i=1:n s=s+i; fprintf('i=%.0f, s=%.0f\n',i,s); end 例2:求奇数和:s=1+3+5+…+(2k-1) n=input('请输入 n='); s=0; for i=1:2:n s=s+i; fprintf('i=%.0f, s=%.0f\n',i,s); end

4. MATLAB程序设计 4.3 程序结构控制 for循环 例3:求阶乘:p=1×2 × 3 × … × n=n! n=input('请输入 n= '); p=1; for i=1:n p=p*i; fprintf(' i=%.0f, p=%.0f\n ',i,p); end 例4:求e:e=1+1+1/2!+1/3!+…+1/n! n=input('请输入 n= '); p=1;e=1; for i=1:n p=p*i; p1=1/p; e=e+p1; fprintf(' i=%.0f, p=%.0f, e=%.8f \n ',i,p,e); end

4. MATLAB程序设计 4.3 程序结构控制 for循环 例5:求pi:pi/4=1-1/3+1/5-1/7+1/9-1/11+… n=input('请输入 n= '); pi=0;k=-1; for i=1:2:n k=(-1)*k; pi=pi+k*1/i; fprintf(' i=%.0f, pi=%.8f \n ',i,4*pi); end

4. MATLAB程序设计 4.3 程序结构控制 while循环 while 条件循环命令 条件循环命令(while命令) 格式: while (condition is true) commands; end 作用:重复执行命令集commands.

4. MATLAB程序设计 4.3 程序结构控制 while循环 例6:求和:s=1+2+…+n<3000 s=0;k=1; s=s+k; fprintf(' k=%.0f, s=%.0f\n ',k,s); k=k+1; end 例7:求e:e=1+1+1/2!+1/3!+… (1/n!<1.0e-8) p=1;e=1;r=1;i=1; while r>=1.0e-8 p=p*i; r=1/p; e=e+r; fprintf(' i=%.0f, r=%.9f, e=%.9f \n ',i,r,e); i=i+1; end

4. MATLAB程序设计 4.3 程序结构控制 if控制 if 选择控制命令 单项选择控制 格式: if (condition is true) commands; end 作用:若条件成立,则执行命令集 commands. 否则,不执行。

4. MATLAB程序设计 4.3 程序结构控制 if控制 例8:求n个实数中最大的数M a=input('请输入数组 a[n]= '); [m,n]=size(a); M=a(1); for i=2:n if M<a(i) M=a(i); end fprintf(' M=%.5f, a(%.0f)=%.5f \n ',M,i,a(i));

4. MATLAB程序设计 4.3 程序结构控制 if控制 if 选择控制命令 多项选择控制 格式: if (condition is true) commands; elseif (condition is true) else end 作用:若条件成立,则执行命令集commands. 否则,不执行。

4. MATLAB程序设计 4.3 程序结构控制 if控制 例9:建立符号函数sign(x) x=input('x='); if x>0 sn=1; elseif x==0 sn=0; else sn=-1; end fprintf('x=%.5f, sn=%.0f\n',x,sn);

4. MATLAB程序设计 4.4 上机练习

5. MATLAB绘图

5. MATLAB绘图 5.1 图形窗口 5.2 二维绘图 5.3 三维维绘图 5.4 上机练习

5. MATLAB绘图 close 关闭当前图形窗口 close( n) 关闭指定图形窗口n close all 关闭所有图形窗口 clf 5.1 图形窗口 figure figure (n) 创建图形窗口 close 关闭当前图形窗口 close( n) 关闭指定图形窗口n close all 关闭所有图形窗口 clf 清楚当前图形窗口图像

5. MATLAB绘图 plot(x) x各分量的序号为横坐标,分量值为纵坐标 plot(x,y) x为横坐标,y为纵坐标 5.2 二维绘图 plot plot(x) x各分量的序号为横坐标,分量值为纵坐标 plot(x,y) x为横坐标,y为纵坐标 plot(x1,y1,x2,y2) 同时画两条线 plot(x,y,’s’) 设置线条样式 plot(x1,y1,’s1’,x2,y2,’s2’) 同时画多条曲线及样式

5. MATLAB绘图 5.2 二维绘图 颜色及样式 r 红色 - 实线 g 绿色 -- 虚线 b 蓝色 : 点线 y 黄色 -. 点划线 5.2 二维绘图 颜色及样式 r 红色 - 实线 g 绿色 -- 虚线 b 蓝色 : 点线 y 黄色 -. 点划线 m 洋红色 o 圆圈 c 青色 x 叉号 w 白色 + 加号 k 黑色 s 正方形 * 星号 d 菱形 . 点号

5. MATLAB绘图 5.2 二维绘图 示例 x=linspace(0,2*pi,101); y=sin(x); 5.2 二维绘图 示例 x=linspace(0,2*pi,101); y=sin(x); plot(x,y,'-*r');

5. MATLAB绘图 5.2 二维绘图 示例 x=linspace(0,2*pi,101); y1=sin(x); y2=cos(x); 5.2 二维绘图 示例 x=linspace(0,2*pi,101); y1=sin(x); y2=cos(x); plot(x,y1,'-r‘,x,y2,’-b’);

5. MATLAB绘图 5.2 二维绘图 示例 x=peaks; plot(x);

5. MATLAB绘图 plot3(x,y,z) x,y,z长度相同向量 plot3(X,Y,Z) X,Y,Z维数相同矩阵 5.3 三维绘图 plot3 plot3(x,y,z) x,y,z长度相同向量 plot3(X,Y,Z) X,Y,Z维数相同矩阵 plot3(x,y,z,’s’) 带样式 plot3(x1,y1,z1,’s1’,x2,y2,z2,’s2’) 同时画多个

5. MATLAB绘图 5.3 三维绘图 示例 plot3 t=0:pi/50:10*pi; 5.3 三维绘图 示例 plot3 t=0:pi/50:10*pi; plot3(t,sin(t),cos(t),'r-');

5. MATLAB绘图 5.3 三维绘图 示例 plot3 [x,y,z]=peaks; plot3(x,y,z,‘b-');

5. MATLAB绘图 5.3 三维绘图 示例 mesh 三维网格 [x,y,z]=peaks; mesh(x,y,z);

5. MATLAB绘图 5.3 三维绘图 示例 surf 三维曲面 [x,y,z]=peaks; surf(x,y,z);

5. MATLAB绘图 5.4 上机练习

桂林理工大学理学院信息与计算科学教研室 艾武 Thank You! 桂林理工大学理学院信息与计算科学教研室 艾武