MATLAB基础及应用教程
- 格式:doc
- 大小:4.79 MB
- 文档页数:128
matlab 教程MATLAB 是一种强大的数值计算和科学编程环境,可用于解决多种数学问题和数据分析任务。
本教程将介绍如何使用MATLAB 进行各种操作。
一、MATLAB 基础1. 安装和启动 MATLAB要使用 MATLAB,您需要首先下载、安装并启动 MATLAB软件。
请参考官方网站上的安装指南,并按照说明进行操作。
2. MATLAB 命令行界面MATLAB 的命令行界面是您与 MATLAB 进行交互的主要方式。
您可以在命令行界面中输入命令,并且 MATLAB 会立即执行并返回结果。
3. 基本数学运算在 MATLAB 中进行数学计算非常简单。
您可以使用标准的数学运算符(如 +、-、* 和 /)以及函数(如 sin、cos 和 sqrt)进行各种数学操作。
4. 变量和数据类型在 MATLAB 中,您可以使用变量存储和操作数据。
MATLAB 支持多种数据类型,包括数值类型(如整数、浮点数和复数)、逻辑类型和字符类型。
5. 矩阵和向量运算MATLAB 中的矩阵和向量运算非常强大,可以轻松进行线性代数运算,如矩阵相乘、向量点积和矩阵求逆等。
二、数据处理与分析1. 数据导入和导出在 MATLAB 中,您可以使用各种函数和工具将数据从外部文件导入到 MATLAB 中或将 MATLAB 数据导出到外部文件。
2. 数据可视化MATLAB 提供了丰富的绘图工具,可用于创建各种类型的图形和图表,以可视化和分析数据。
3. 数据统计和分析MATLAB 包括许多用于数据统计和分析的函数和工具,包括描述统计、假设检验、回归分析和时间序列分析等。
4. 信号处理MATLAB 提供了强大的信号处理工具箱,可用于处理和分析各种类型的信号,如音频信号、图像信号和生物信号等。
三、编程与脚本1. MATLAB 脚本文件您可以使用MATLAB 编辑器创建和编辑MATLAB 脚本文件。
脚本文件包含一系列 MATLAB 命令和函数,可用于执行特定的操作。
MATLAB入门指南MATLAB是一款功能强大的数值计算软件和编程环境,广泛应用于科学、工程和数据分析领域。
本文将为初学者提供一份MATLAB入门指南,以帮助他们快速掌握基本概念、使用技巧和常见功能。
第一部分:MATLAB基础1. MATLAB的介绍MATLAB是由MathWorks开发的高级编程语言和环境,其主要用于数值计算、数据可视化和算法开发。
它与其他编程语言相比,有着简单易学的语法和丰富的内置函数库。
2. MATLAB的安装与设置在使用MATLAB之前,您需要先下载和安装MATLAB软件。
安装过程通常是简单的,只需按照提示一步一步执行即可。
安装完成后,您可以根据需要进行一些个性化设置,如选择默认工作目录和字体大小。
3. MATLAB的基本命令和运算符MATLAB的基本命令和运算符与其他编程语言类似,包括数学运算符(加减乘除、幂运算等)、逻辑运算符(与或非等)和比较运算符(等于、大于、小于等)。
您可以使用MATLAB作为计算器来进行简单的数学计算,如计算平方根、三角函数等。
4. MATLAB的变量和数据类型在MATLAB中,您可以使用变量来存储和操作数据。
MATLAB支持多种数据类型,包括数值、字符、逻辑和结构等。
您可以使用赋值语句将数据存储在变量中,并使用变量进行计算和操作。
5. MATLAB的数组和矩阵操作MATLAB以矩阵为基础进行计算,因此对于初学者来说,了解如何创建、操作和计算矩阵是至关重要的。
您可以使用MATLAB提供的函数来创建矩阵,并使用索引和运算符对矩阵进行操作。
第二部分:MATLAB编程和算法1. MATLAB的脚本文件和函数MATLAB提供了编写脚本文件和函数的能力,以便在单个文件中组织代码。
您可以使用脚本文件来一次性执行一系列MATLAB命令,而函数则可以封装一段可重复使用的代码块。
2. MATLAB控制结构MATLAB提供了多种控制结构,如条件语句(if-else)、循环语句(for、while)和跳转语句(break、continue)。
MATLAB基础知识及常用功能介绍第一章:MATLAB简介及安装MATLAB是一种强大且广泛应用的数值计算软件,它提供了许多用于科学计算和工程设计的功能。
MATLAB是矩阵实验室(Matrix Laboratory)的缩写,其主要特点是在操作矩阵和各种数学函数上非常高效。
要安装MATLAB,只需下载安装程序然后按照提示进行安装即可。
第二章:MATLAB基本操作在MATLAB中,可以使用各种命令来进行基本的数学运算,例如加减乘除、幂运算等。
此外,还可以定义变量、矩阵和向量,并进行复杂的数学运算。
提示:使用分号可以取消输出结果。
第三章:MATLAB脚本和函数脚本是一系列MATLAB命令的集合,可以保存并重复执行。
函数是一段具有输入和输出的可执行代码块,可以通过函数名和输入参数来调用。
编写脚本和函数有助于提高代码的可读性和可重复性。
第四章:MATLAB图形化界面MATLAB提供了图形化界面(GUI)工具箱,用于创建交互式应用程序和图形用户界面。
利用GUI工具箱,可以通过拖拽和放置的方式创建界面,并通过设置属性和回调函数实现交互功能。
第五章:MATLAB数据可视化MATLAB拥有丰富的数据可视化功能,可以将数据以各种图表形式呈现出来,如散点图、柱状图、曲线图等。
此外,还可以对图表进行自定义设置,如添加图例、调整轴范围、添加标题等。
第六章:MATLAB图像处理MATLAB提供了强大的图像处理工具箱,可以用于图像的滤波、锐化、模糊、边缘检测等操作。
此外,还可以进行图像的变换和特征提取,用于图像识别和分析。
第七章:MATLAB信号处理MATLAB信号处理工具箱提供了一系列用于处理、分析和合成信号的函数和工具。
可以进行信号滤波、频谱分析、时域分析等操作。
此外,还可以进行数字滤波器设计和滤波器实现。
第八章:MATLAB数学建模MATLAB是数学建模的重要工具,可以用于建立各种数学模型并进行仿真和优化。
可以利用MATLAB解方程、求解微分方程、进行符号计算等,用于解决各种实际问题。
Matlab基本功能及使用方法Matlab是一种专业的计算机软件,广泛应用于科学计算、数据分析和工程模拟等领域。
它具有强大的数学计算功能和灵活的编程接口,使得科学家、工程师和研究人员能够快速、高效地处理和分析数据。
本文将介绍Matlab的基本功能及使用方法,帮助读者快速上手并掌握Matlab的基本操作和应用技巧。
1. Matlab的界面和基本操作Matlab的界面分为工作区、命令窗口、编辑器和图形界面等几个部分。
在工作区可以查看和管理当前变量,命令窗口可以输入和执行Matlab命令,编辑器则用于编写和运行Matlab脚本或函数。
同时Matlab还提供了丰富的工具箱,包括统计工具箱、优化工具箱、图像处理工具箱等,可以根据需要加载并使用。
2. Matlab的基本数据类型和运算Matlab支持常见的数据类型,如标量、向量、矩阵和多维数组等。
可以使用Matlab进行基本的数学运算,包括加减乘除、幂运算和三角函数等。
Matlab还提供了丰富的数学函数和操作符,使得数学计算变得更加简单和高效。
3. 数据的导入和导出Matlab可以方便地导入和导出各种数据格式,如文本文件、Excel文件、图像文件和音频文件等。
可以使用Matlab提供的函数读取和处理数据,也可以将计算结果和图表保存为文件,方便后续的使用和分享。
4. 数据的可视化Matlab具有强大的数据可视化功能,可以绘制各种类型的图表和图形,如折线图、散点图、柱状图和3D图等。
可以使用Matlab提供的函数设置图表的样式和属性,如线条颜色、坐标轴范围和图例等。
通过数据可视化,可以更直观地理解和展示数据,揭示数据背后的规律和趋势。
5. 图像处理和信号处理Matlab在图像处理和信号处理方面有着广泛的应用。
可以使用Matlab提供的函数读取和处理图像,如图像的滤波、边缘检测和图像增强等。
同时,Matlab还提供了丰富的信号处理函数和工具箱,如离散傅里叶变换、数字滤波器设计和信号重构等,可以对信号进行分析和处理,实现各种信号处理算法和方法。
MATLAB基础知识及使用方法第一章:MATLAB简介与环境介绍1.1 MATLAB概述MATLAB是一种高级编程语言和数值计算环境,广泛应用于科学计算、工程设计、数据分析和算法开发等领域。
它提供了强大的数值计算工具和图形绘制功能,并有丰富的库函数和工具箱可供使用。
1.2 MATLAB环境介绍MATLAB的主要界面包括命令窗口、编辑器、工作区和命令历史等。
命令窗口用于交互式执行命令和脚本,编辑器用于编写和编辑脚本文件,工作区用于显示和管理变量,命令历史用于查看和管理执行过的命令。
第二章:MATLAB基本语法2.1 变量和数据类型在MATLAB中,变量可以通过简单的赋值来创建,并且不需要事先声明变量类型。
常见的数据类型包括数值类型(整数、浮点数)、字符类型和逻辑类型(布尔型)等。
MATLAB还提供了复数类型和矩阵类型,具有丰富的数值计算功能。
2.2 运算符和表达式MATLAB支持常见的数学运算符,如加减乘除、取余和乘方等。
此外,还提供了矩阵运算符和逻辑运算符,方便处理矩阵和逻辑表达式。
表达式可以由变量、常数和运算符组合而成,并且支持函数调用。
2.3 控制流程MATLAB提供了条件语句(if-else)、循环语句(for、while)和函数等控制流程结构,以实现不同的程序逻辑。
条件语句根据条件的真假执行不同的代码块,循环语句重复执行一段代码块,函数封装了一段可重复使用的代码。
第三章:MATLAB图形绘制3.1 二维图形绘制MATLAB提供了丰富的函数和工具箱,以绘制各种二维图形,如线图、散点图、柱状图和饼图等。
用户可以自定义图形样式、坐标轴刻度、图例和注释等,以满足不同的数据可视化需求。
3.2 三维图形绘制除了二维图形外,MATLAB还支持绘制三维图形,如曲面图和体积图等。
通过调整视角、设置颜色映射和光照效果,用户可以更直观地表达三维数据的特征和分布情况。
3.3 动态图形绘制MATLAB中的图形绘制功能不仅限于静态图形,还可用于生成动态图形。
MATLAB基础知识及应用引言MATLAB是一种强大且广泛使用的数学软件,它可以帮助我们进行各种数学计算、数据分析和可视化等工作。
本文将介绍MATLAB的基础知识以及一些常用的应用。
一、MATLAB的安装和基本操作首先,让我们先来了解一下MATLAB的安装和基本操作。
在安装MATLAB 之前,我们需要从官方网站下载安装程序,并按照提示进行安装。
安装完成后,我们可以通过启动MATLAB来打开软件。
当MATLAB打开后,我们会看到一个交互式界面,这是MATLAB的命令窗口。
我们可以在命令窗口中输入命令,并立即获得结果。
例如,我们可以输入"1+1",然后按下回车键,MATLAB会返回结果"2"。
此外,MATLAB还提供了一个编辑器,可用于编写和运行脚本文件。
我们可以在编辑器中编写一系列MATLAB命令,并一次性运行。
这对于复杂的计算任务非常有用。
二、MATLAB的数据类型和运算符在MATLAB中,有几种常见的数据类型,包括数字、字符、逻辑和矩阵等。
数字可以是整数或浮点数,字符是用单引号或双引号括起来的文本,逻辑值为true 或false,矩阵由行和列组成。
MATLAB提供了各种运算符,可以对这些数据类型进行操作。
例如,加法、减法、乘法和除法运算符用于数字类型,连接运算符用于字符类型,逻辑运算符用于逻辑类型,矩阵运算符用于矩阵类型。
除了基本的运算符,MATLAB还提供了许多函数和工具箱,用于更复杂的数学计算和数据分析。
例如,我们可以使用MATLAB的内置函数求解方程组、优化问题、进行统计分析等。
三、MATLAB的编程能力除了作为一个数学软件,MATLAB还是一种功能强大的编程语言。
我们可以使用MATLAB编写脚本和函数,以解决各种计算问题。
MATLAB的编程语法与其他常见的编程语言相似。
它支持条件语句(如if语句)、循环语句(如for和while循环)、函数定义等。
(完整版)Matlab⼊门教程第1章MATLAB操作基础1.1 MATLAB概述1.1.2 MATLAB的主要功能1.数值计算MATLAB以矩阵作为数据操作的基本单位,还提供了⼗分丰富的数值计算函数。
2.绘图功能可以绘制⼆维、三维图形,还可以绘制特殊图形(与统计有关的图,例如:区域图、直⽅图、饼图、柱状图等)。
3.编程语⾔MATLAB具有程序结构控制、函数调⽤、数据结构、输⼊输出、⾯向对象等程序语⾔特征,⽽且简单易学、编程效率⾼。
4.MATLAB⼯具箱MATLAB包含两部分内容:基本部分和各种可选的⼯具箱。
MATLAB⼯具箱分为两⼤类:功能性⼯具箱和学科性⼯具箱。
1.1.3MATLAB语⾔的特点语⾔简洁紧凑,使⽤⽅便灵活,易学易⽤。
例如:A=[1 2 3;4 5 6;7 8 9]⼀条语句实现了对3x3矩阵的输⼊。
语句功能强⼤,⼀条语句相当于其它语⾔的⼀个⼦程序,例如fft。
语句简单,内涵丰富。
同⼀个函数有不同的输⼊变量和输出变量,分别代表不同的含义。
Matlab既具有结构化的控制语句(if、for、while)⼜⽀持⾯向对象的程序设计。
⽅便的绘图功能。
包含功能强劲的⼯具箱。
易于扩展。
1.1.4 初识MATLAB例1-1 绘制正弦曲线和余弦曲线。
x=[0:0.5:360]*pi/180;plot(x,sin(x),x,cos(x));例1-2 求⽅程3x4+7x3+9x2-23=0的全部根。
p=[3,7,9,0,-23]; %建⽴多项式系数向量x=roots(p) %求根例1-3 求积分quad('x.*log(1+x)',0,1)例1-4 求解线性⽅程组。
a=[2,-3,1;8,3,2;45,1,-9];b=[4;2;17];x=inv(a)*b1.2 MATLAB的运⾏环境与安装1.2.1 MATLAB的运⾏环境硬件环境:(1) CPU(2) 内存(3) 硬盘(4) CD-ROM驱动器和⿏标软件环境:(1) Windows 98/NT/2000 或Windows XP(2) 其他软件根据需要选⽤1.2.2 MATLAB的安装运⾏系统的安装程序setup.exe,可以按照安装提⽰依次操作。
matlab程序设计与应用基础教程Matlab是一种强大的科学计算软件,在工程学、数学和计算机科学等领域得到广泛应用。
本文将介绍Matlab程序设计与应用的基础知识,帮助读者快速上手使用该软件。
一、Matlab的基本概念和特点Matlab是Matrix Laboratory的缩写,它以矩阵为基础,提供了丰富的数学函数和工具箱,方便用户进行科学计算、数据分析和可视化等操作。
Matlab的语法简洁易学,能够快速实现复杂的数值计算和算法开发。
同时,Matlab还支持面向对象编程,方便用户进行程序的模块化设计和复用。
二、Matlab的环境和基本操作在开始使用Matlab之前,首先需要了解Matlab的环境和基本操作。
Matlab提供了一个交互式的命令行界面,用户可以在命令窗口中输入和执行命令。
此外,Matlab还提供了图形用户界面(GUI),用户可以通过菜单和工具栏进行操作。
用户可以使用Matlab自带的编辑器编写和编辑脚本文件,也可以在命令窗口中直接输入命令。
三、Matlab的基本数据类型和变量在Matlab中,数据是以矩阵的形式存储和处理的。
Matlab提供了多种数据类型,包括数值型、字符型、逻辑型等。
用户可以使用赋值语句将数据保存到变量中,并通过变量名进行引用和操作。
Matlab还支持数组和矩阵的运算,用户可以进行向量化计算,提高计算效率。
四、Matlab的基本运算和函数Matlab提供了丰富的数学函数和运算符,用户可以使用这些函数进行数值计算和数据处理。
例如,用户可以使用加减乘除等运算符进行基本的算术运算,使用sin、cos、exp等函数进行数学运算,使用max、min、mean等函数进行统计分析。
此外,Matlab还提供了大量的工具箱,包括信号处理、图像处理、优化等,方便用户进行专业领域的计算和分析。
五、Matlab的程序设计基础Matlab不仅可以进行简单的计算和数据处理,还可以进行复杂的程序设计。
MATLAB基础及其应用教程教学大纲本教程旨在为初学者提供MATLAB基础及应用的全面教程,包括MATLAB的基本操作、数据类型、矩阵运算、常用函数以及其应用场景等。
一、MATLAB基本操作1.MATLAB环境介绍–MATLAB主窗口介绍–工具箱介绍–MATLAB文件、MATLAB函数、脚本文件介绍2.MATLAB数据类型–数值型•整型•浮点型–字符串型–逻辑型3.MATLAB变量–变量命名规则、变量定义–MATLAB常量、变量类型转换4.MATLAB操作符–算术运算符–比较运算符–逻辑运算符–位运算符5.MATLAB控制语句–条件语句–循环语句–跳转语句二、MATLAB矩阵运算1.定义矩阵–矩阵的创建、赋值–矩阵的大小、维度、元素访问2.MATLAB矩阵运算–矩阵加法、减法、乘法–矩阵的转置、共轭、伴随–矩阵的求逆、行列式–特殊矩阵的创建和应用3.MATLAB线性方程组求解–一元线性方程组求解–多元线性方程组求解4.MATLAB矩阵分解–LU分解–QR分解–Cholesky分解三、MATLAB常用函数1.绘图函数–线性图–离散图–柱状图–散点图2.数学函数–常用数学函数–统计函数3.文件操作函数–文件读写–目录操作–数据导入导出四、MATLAB应用场景1.数字信号处理–信号的采集、滤波、变换–图像处理2.控制工程–系统建模、仿真–控制策略设计、优化3.机器学习–数据预处理、特征提取–分类算法、聚类算法五、教学方法和评估1.教学方法–讲解+练习–互动式教学2.基础篇考核–知识填空题、选择题–简单的编程题3.应用篇考核–合成题–项目实训4.总评估–基础篇50%–应用篇50%。
01MATLAB是MathWorks公司开发的一款商业数学软件02主要应用于算法开发、数据可视化、数据分析以及数值计算等领域03在科学计算、工程设计、图像处理、信号处理等领域有广泛应用MATLAB简介及应用领域MATLAB工作环境与界面介绍01MATLAB工作环境包括命令窗口、工作空间、编辑器、路径管理器等02界面简洁直观,易于上手,支持多种操作系统03提供丰富的帮助文档和示例代码,方便用户学习和使用变量、数据类型和运算符MATLAB支持多种数据类型,包括数值型、字符型、逻辑型等变量命名规则灵活,但建议遵循一定的命名规范运算符包括算术运算符、关系运算符、逻辑运算符等01 02 03MATLAB以矩阵作为基本数据单位,支持多维数组提供丰富的矩阵运算函数,如矩阵乘法、矩阵转置、矩阵求逆等支持数组元素的索引和切片操作,方便进行数据处理矩阵与数组操作流程控制语句01MATLAB提供多种流程控制语句,如if语句、for循环、while循环等02支持条件判断、循环控制、中断和继续等操作03流程控制语句的语法简洁明了,易于理解和使用03介绍数值计算的定义、特点、误差分析等基本概念。
数值计算基本概念详细讲解MATLAB 中的数值类型,包括整数、浮点数、复数等。
MATLAB 数据类型介绍数组和矩阵的基本概念和运算规则,包括数组的创建、索引、操作等,以及矩阵的加减、乘除、转置等运算。
数组与矩阵运算数值计算基础符号运算入门符号运算基本概念01介绍符号运算的定义、特点、应用领域等基本概念。
符号对象的创建与操作02详细讲解如何创建符号对象,包括符号变量、符号表达式、符号函数等,以及如何进行符号对象的操作,如符号表达式的化简、求值等。
符号微积分03介绍符号微积分的基本概念和运算规则,包括符号函数的极限、导数、积分等运算。
方程求解与函数极值问题线性方程组求解介绍线性方程组的基本概念和解法,包括直接法和迭代法,以及如何使用MATLAB求解线性方程组。
第4章程序设计在前面我们已经看到,MATLAB不但可以在命令窗直接输入命令并运行,而且还可以生成自己的程序文件,这就是我们通常说的一类以M为后缀的M文件,本章我们就来研究这类文件的形成方法。
M文件可分分为两大类,一是命令式M文件(也称为脚本文件,script),二是函数式M 文件(function)。
两类文件的区别在于:(1)命令式文件可以直接运行,函数式文件不能直接运行,只能调用。
(2)命令式文件运行时没有输入输出参量,函数式文件在调用时需要进行输入输出参量设置。
(3)命令式文件运行中可以调用工作空间的数据,运行中产生的所有变量为全局变量。
(4)函数式文件不能调用工作空间的数据,运行中产生的所有变量为局部变量。
命令式文件运行中产生的所有变量为全局变量,可以调用和存储到工作空间的数据。
4.1 MATLAB的程序文件-M文件4.1.1 脚本文件(Scripts)当我们需要在命令窗进行大量的命令集合运行时,直接从命令窗口输入比较麻烦,这时就可以将这些命令集合存放在一个脚本文件(Scripts)中,运行时只需要输入其文件名就可以自动执行这些命令集合。
需要注意的是,脚本文件运行所产生的变量都驻留在MATLAB 的工作空间中,同时脚本文件也可以调用工作空间中的数据。
因此,脚本文件所涉及的变量是全局变量。
前几章所涉及到的M文件都是这类脚本文件。
编辑一个脚本文件可以直接在命令窗口的左上角打开编辑窗进行编辑。
4.1.2 函数文件(function)函数式文件(function)的构成(1)函数定义行:Function [输出参量]=gauss(输入参量)(2):完成函数的功能。
(3)函数说明。
(4)函数行注。
从上面构成的情况看,函数式文件实际上是完成输入参量与输出参量的转换,这样的转换是由函数文件名为gauss的文件来完成的。
函数体的功能必须说明清楚输入参量与输出参量的关系。
函数说明是用来解释该函数的功能的,函数行注是对程序行进行说明的。
上面(1)和(2)是必须的。
【例4-1】分析下面函数文件。
%一个数列,任意项等于前两项之和,输入项数可以给出这个数列function [a]=sul(n)if n==1a=1;else if n==2a=2;endb(1)=1;b(2)=2;for i=3:nb(i)=b(i-2)+b(i-1);enda=b;end该函数文件的文件名为sul.m,在第一行给出了该函数的功能,即输入项数就可以自动给出一个满足条件的数列。
定义行规定了输入参数是该数列的项数,输出参数是该数列。
从第三行起,是该函数的主体,主要说明了输入参数与输出参数的关系。
当我们在命令窗或脚本文件中调用该函数就会有结果,如>> p=sul(5)p =1 2 3 5 8【例4-2】分析下面函数文件。
%一个数列的通项公式为a(n+1)=a(n)+n^2,给定任意项的值,求这个数列的后10项,并画离散函数图function [b]=shulie(n,zhi)%zhi为初值b(1)=zhifor m=1:n-1b(1+m)=b(m)+m^2endfor j=n:n+9b(1+j)=b(j)+j^2endx=n:(n+9)stem(x,b(n:n+9))end如果在命令窗输入shulie(5,10)结果为b =10x =5 6 7 8 9 10 11 12 13 14 ans =Columns 1 through 510 11 15 24 40 Columns 6 through 1065 101 150 214 295 Columns 11 through 15395 516 660 829 1025以及4.2 程序的流程控制4.2.1 循环控制1.硬循环语句(for-end)所谓硬循环是指无条件的循环,其结构为for(循环变量)。
end【例4-3】用硬循环语句形成一个5阶对角线元素为2的矩阵。
clearn=5; %每个for和if都必须对应一个endfor i=1:n % i是循环变量for j=1:nif i==ja(i,j)=2;elsea(i,j)=0;endendenda结果为a =2 0 0 0 00 2 0 0 00 0 2 0 00 0 0 2 00 0 0 0 2根据结果,如果要两条主对角线元素都为2,如何调此程序?注意,硬循环语句也可用break来跳出循环。
4.2.2 条件控制1.条件分支语句(if-else-end)如果-那么-否则结构If 条件1语句1elseif 条件2语句2..else语句end注意这一结构的条件优先问题,当有多个条件时,如果条件1不满足,再判断elseif 后面的条件2…,如果所有的条件都不满足,在则执行else 后面的语句。
【例4-5】分析下面条件语句。
x=input('x=?')if ((x+3)<2)y=x*2;elseif (x<2)y=x^2;else(x<1)y=sqrt(x);endy运行结果x=?1.5x =1.5000y =2.25002.条件循环语句(while-end)当条件满足时执行下一语句,否则就到end返回while。
其结构为while(表达式)。
end【例4-4】求阶乘大于或等于99^99的最小整数。
clearn=1;while prod(1:n)<99^99; % prod()向量元素的乘积n=n+1;endn结果为n =1204.2.3 开关与试探控制分支开关语句(switch-case-otherwise-end)结构 switch (开关量),相当于满足什么条件做什么事。
【例4-5】根据开关量的情况来决定计算机计算机执行那个语句。
a=input('a=?')switch acase 1disp('It is raning')case 0disp('It do not konw')case -1disp('It is not raning')otherwisedisp('It is raning?')end4.3 程序设计4.3.1 程序的调试1. 程序的错误一般分为语法和逻辑两种错型。
语法错误时程序无法运行,并在命令窗给予提示。
而逻辑错误只能根据计算的具体情况来判断。
2.根据出错信息调试根据命令窗的提示,注意一般情况不加“;”号调试。
3.设置断点来判断dbstop 格式:dbstop in M文件名 at 行号(也可用鼠标)4.利用keyboard命令在文件中来判断当出现k>> 时return。
5.变量的鼠标观测法当程序代码运行后,每个变量的数据都可以用鼠标放在相应的位置处去观察该变量的数据情况,以判断程序运行的具体执行情况。
6.代码运行的计时方法(1)整段程序代码的计时tic …toc 表示计算tic与toc之间的时间【例4-6】计算机程序运行时间计算。
tica=rand(300);inv(a);%计算逆矩阵toc%注:程序中不需要显示结果的就不显示,这可以节约机时。
结果为>>elapsed_time =0.3900(2)也可以用 etime(t1,t2)来计算t1,t2之间的时间差来完成上述功能。
【例4-7】计算机程序运行时间计算。
t0=clocka=rand(300);inv(a);%计算逆矩阵elapsed_time=etime(clock,t0)%注:程序中不需要显示结果的就不显示,这可以节约机时。
结果仍为>>elapsed_time =0.3900(3)也可以用cputime变量来完成上述功能。
【例4-8】计算机程序运行时间计算。
t0=cputimea=rand(300);inv(a);%计算逆矩阵elapsed_time=cputime-t0%注:程序中不需要显示结果的就不显示,这可以节约机时。
结果为t0 =9.5787e+003elapsed_time =0.27104.3.2 M文件的性能优化1.程序代码的向量化【例4-8】比较下面两个程序段,观察其运行的时间。
程序1t0=cputimen=100000;total=0;for i=1:ntotal=total+1/iendtotalt1=cputime-t0运行结果为total =12.0901t1 =3.1950程序2ticn=100000;a=1:n;total=sum(1./a)toc运行结果为total =12.0901elapsed_time =0.0200发现,程序1和程序2运行结果完全相同,但运行时间程序1是程序2的160倍!2.用矩阵结构进行运算一般情况下,完全采用矩阵运行的方式,MATLAB 的程序与C语言的运行基本相同。
这必须对矩阵非常熟练,例如x=[1 2 3;1 2 1]a=[4 5 6]如果希望将a中的每一个元素乘以x的每一列,用diag(x)。
3.阵的预先配置在一些大的程序运行时,为了变量不至于让计算机不断向内存要空间位置而耽误时间,运行前需要给变量留出一定的空间。
【例4-9】比较下面两个程序段,观察其运行的时间。
程序1tica=[1 2 3;4 5 6;7 8 9];for i=1:100y(i)=det(a^i)endtoc结果为elapsed_time =0.1100程序2tica=[1 2 3;4 5 6;7 8 9];y=zeros(1,100);%分配内存for i=1:100y(i)=det(a^i); endtoc结果为elapsed_time =0.0100练习 41.已知函数13+-=ax x y请研究参数a 在[-1:0.1:1]内函数的根(实部与虚部)随a 的变化关系。
(用图形表示)2.编制一个函数,函数的输入参数为一个任意矩阵或向量,输出参数为该矩阵中不相同的元素个数。
3.编制一个函数文件,函数的输入参数为一个任意矢性场y x e y x g e y x f ρρ),(),(+=ϕ和这个矢性场自变量的取值范围,要求这个函数能自动画出矢性场的平面场分布。
4.设计一个函数文件,要求输入一个任意方阵,该函数能统计出方阵中大于零、等于零和小于零的元素个数。
5.设计一个能实现下面功能的函数文件:输入两个参数:(1)任意2╳n 矩阵(n>8,且第一行为自变量,第二行为对应的函数值);(2)介于任意两自变量之间的值。
输出为该自变量对应的函数值。
(用9次多项式拟和)6. 一个MATLAB 的递归函数fibo.m 来计算fibo 数列,定义如下:fibo (n+2)=(fibo (n+1)+fibo (n ))/2此数列的初条件为fibo (1)=0, fibo (2 )=1n 的最大数为100,要求:(1) 保存你的fibo.m 文件,当在命令窗调用fibo 函数时,不论输入任何整数有正确的输出。