MATLAB入门第二章_第1页
MATLAB入门第二章_第2页
MATLAB入门第二章_第3页
MATLAB入门第二章_第4页
MATLAB入门第二章_第5页
已阅读5页,还剩229页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第二章MATLAB程序设计基础 第一节教学目标1基本运算介绍 2变量的概念 3系统函数的概念 4一般的应用问题转换为计算机模型 第二章MATLAB程序设计基础 一 基本运算 MATLAB 第二章MATLAB程序设计基础 一 基本运算简单的数学运算 1 2 3 4 5 1 2 3 4 5 第二章MATLAB程序设计基础 一 基本运算复杂一点点的数学运算 已知 x 15 y 10 z 7求解 x 2Y 5z 3 x 15 y 10 z 7 x 2 y 5 z 3 第二章MATLAB程序设计基础 一 基本运算 这些运算的本质 基本数学运算 操作数 运算符 第二章MATLAB程序设计基础 一 基本运算1MATLAB算术运算符加 减 乘 除 幂次方 运算次序 自左向右运算 优先级最高 乘除次之 后加减 如果有括号 括号优先执行 第二章MATLAB程序设计基础 二 变量 变量 程序执行过程中可以变化的量 MATLAB中的变量可以由用户指定变量名 通过变量名随时可以引用变量和修改变量 第二章MATLAB程序设计基础 二 变量 MATLAB特殊之处 无需进行变量声明 遇到新变量名时 自动生成变量 并指定合适的存储空间 如变量早已存在 则自动更新 利与弊的分析 第二章MATLAB程序设计基础 二 变量1 系统特殊变量 1 2 3 4 5ans是个特殊的系统变量 没有指定变量来存储运算结果时 系统会自动将结果存储在临时变量ans中 第二章MATLAB程序设计基础 二 变量1 系统特殊变量MATLAB的系统特殊变量 ans 临时变量pi inf 无穷大eps 极小值NaN NotaNumber NotAvailable nan 同上i 虚数sqrt 1 j 虚数sqrt 1 第二章MATLAB程序设计基础 二 变量2自定义变量 注意这些操作 a 1 abc 1 2 3 4 5 a 1 b 3 c 5 A 2 B 4 C 6 area r 2 第二章MATLAB程序设计基础 二 变量2自定义变量命名规则 变量名由字母 数字和下划线组成 字母间不可留空格且第一个字符必须为字母 区分大小写 变量名的长度上限为n个字符 补充 变量名不能为中文 系统变量名不要和自定义重名 第二章MATLAB程序设计基础 二 变量 万一自定义变量名和系统变量名一样结果会怎样 怎么办 pi 2 pi clearpi pi 第二章MATLAB程序设计基础 二 变量 函数 isvarnameDeterminewhetherinputisvalidvariablename语法 tf isvarname str isvarnamestr观察下面的变量名是否合理 书例2 1 isvarnamemyVarName isvarname7myVarName 第二章MATLAB程序设计基础 二 变量3获取当前变量命令行直接键入变量名 第二章MATLAB程序设计基础 二 变量4变量的显示精度控制显示精度函数 format控制精度计算的函数 书P58 digits n 设置缺省的精度 vpa S n 将S表示为n位有效位数的形式 Help Variable precisionarithmetic 第二章MATLAB程序设计基础 二 变量4变量的显示精度 1 format命令用来显示计算的精度 不是用来改变计算的精度 MATLAB默认以double 双精度 进行运算和存储 使用format可以控制数据不同的显示格式 formatshortformatshorteformatlongformatlongeformatratformatbank 第二章MATLAB程序设计基础 二 变量4变量的显示精度 用pi来测试一下显示精度 pi formatshort pi formatlong pi formatrat pi 第二章MATLAB程序设计基础 Help digits vpa函数 digitsVariable precisionaccuracy语法 digitsdigits d d digits 4变量的显示精度 第二章MATLAB程序设计基础 Help digits vpa函数 vpaVariable precisionarithmetic语法 R vpa A R vpa A d 4变量的显示精度 Examples old digits digits 4 vpa 1 3 vpa 1 3000 digits old ans 0 3333ans 0 0003333 vpa 1 3 vpa 1 3 10 vpa 1 3 40 ans 0 3333333333333333333333333ans 0 3333333333ans 0 3333333333333333333333333333333333333333 第二章MATLAB程序设计基础 s 1 3 1 3 digits 2 s vpa s vpa s 10 s 1 1 3 1 3 vpa s 4变量的显示精度 第二章MATLAB程序设计基础 二 变量5查看变量who 查看当前工作区 workspace 的变量 whos 查看当前变量的详细信息 第二章MATLAB程序设计基础 二 变量6清除变量clear 清除所有定义过的变量 clear变量名 清除某个变量 第二章MATLAB程序设计基础 二 变量7变量的存取思考 关闭MATLAB 释放工作空间 所有变量会被释放 这样会出现什么问题 解决方法 将工作空间中的变量存储到文件中 即使退出了MATLAB系统 变量依然存在 需要使用时 将这些变量从文件中读取出来即可 第二章MATLAB程序设计基础 二 变量7变量的存取 1 save命令功能 将变量以二进制的方式存储至后缀名为 mat的文档中 格式 savefilename 第二章MATLAB程序设计基础 二 变量7变量的存取 1 save命令命令实例 假定内存中已经存在变量X Y ZsavemyFileXYZdir myFile mat 第二章MATLAB程序设计基础 二 变量7变量的存取 1 save命令注意事项 存储文件为 mat的二进制mat文档中 若文件名缺省 则自动存储到matlab mat中 若为savefilenamex则只将变量x存储到文件中 第二章MATLAB程序设计基础 二 变量7变量的存取 1 save命令注意事项 4 若为savefilenameuw append则将变量u w添加到文件名为filename mat的文件中 5 若为savefilenameuw ascii则将变量u w保存为filename的8位ASCII文档 6 若为savefilenameuw ascii double则将变量u w保存为filename的16位ASCII文档 第二章MATLAB程序设计基础 二 变量7变量的存取 1 save命令 ASCII文档特色 使用 ascii后缀 1 ASCII文档可以看到文档内容 2 默认的存储格式是二进制的mat文件 存储ASCII文档必须加 ascii 3 save ascii通常只存为一个变量 原有变量名消失 load载入时 取用文件名为变量名 4 对于复数 save ascii后只存实部 虚部抛弃 5 ASCII文件通常比二进制文件大 二进制文档较小 读取速度快 第二章MATLAB程序设计基础 二 变量7变量的存取 1 save命令 建议 尽量使用二进制文件存储MATLAB变量 第二章MATLAB程序设计基础 二 变量7变量的存取 2 load命令 功能 读取保存在文件中的变量 格式 loadfilenameloadfilename asciiloadfilename mat 第二章MATLAB程序设计基础 二 变量7变量的存取 2 load命令 注意事项 首先 MATLAB在系统默认路径中自动寻找名称为filename mat的二进制文件 其次 若无该文件 则找filename的文件 用ASCII方式载入 第二章MATLAB程序设计基础 二 变量7变量的存取 2 load命令 例题 clearall a 1 b 2 c 3 savemydata1 savemydata2ab loadmydata1 loadmydata1a 第二章MATLAB程序设计基础 二 变量8变量的初始化 三种方式 1 用赋值语句初始化变量 2 用input函数从键盘输入初始化变量 例如 in1 input enterdata Enterdata 1 23 in2 input enterdata s Enterdata 1 23 in1 in2 3 从文件读取一个数据 以后介绍 第二章MATLAB程序设计基础 二 变量9变量的作用域 1 局部变量 Local 2 全局变量 Global 3 永久变量 Persistent 第二章MATLAB程序设计基础 二 变量9变量的作用域局部变量 在函数中使用的变量 只能在函数的范围内使用 全局变量 在命令文件或工作空间中定义 用global定义全局变量 globalGvar1Gvar2Gvar3永久变量 只能在函数文件中定义和使用 只允许定义它的函数存取 只有清除函数或者关闭MATLAB时 才能从内存中清除它们 persistentperVar 第二章MATLAB程序设计基础 四 函数相关知识3变量的作用域局部变量 在函数中使用的变量 只能在函数的范围内使用 全局变量 在命令文件或工作空间定义 用global定义全局变量 globalvar1var2var3 例如 func1 mfunctiony func1 x globalGvar y x Gvar x 10func2 mfunctiony func2 x globalGvar y x Gvar x 100 例如 globalGvar func1 mfunctiony func1 x globalGvar Y x Gvar x 10func2 mfunctiony func2 x globalGvar Y x Gvar x 100 第二章MATLAB程序设计基础 tips 尽量不使用全局变量和永久变量 第二章MATLAB程序设计基础 三 常用函数 P55 初等数学函数 helpelfun Elementarymathfunctions 高等数学函数 helpspecfunhelpelmat Specializedmathfunctions Elementarymatricesandmatrixmanipulation 第二章MATLAB程序设计基础 三 常用函数 注意问题 1 等式中 函数一定是出现在等式的右边 2 函数参数要求 变量个数和格式要求 3 允许函数嵌套 第二章MATLAB程序设计基础 四 现实问题转化为数学模型例如 哥哥弟弟年龄问题 哥哥比弟弟大19岁 哥哥年龄是弟弟的3倍还多1 问 哥哥和弟弟的年龄分别是多少 第二章MATLAB程序设计基础 四 现实问题转化为数学模型例如 吃桃问题 核桃5毛钱一个 每3个桃核可以换一个桃子 如果有十元钱 问 一共能吃到多少桃子 课后任务 一 熟悉基本数学运算 二 熟练使用变量的相关应用 第二章MATLAB程序设计基础 第二节教学目标通过实例演练熟悉部分常用函数 第二章MATLAB程序设计基础 实战演练常用函数的使用 第二章MATLAB程序设计基础 函数 第二章MATLAB程序设计基础 P55 小整理 MATLAB常用的基本数学函数abs x 纯量的绝对值或向量的长度sqrt x 开平方real z 复数z的实部imag z 复数z的虚部conj z 复数z的共轭复数angle z 复数z的相角round x 四舍五入至最近整数fix x 无论正负 舍去小数至最近整数floor x 地板函数 即舍去正小数至最近整数ceil x 天花板函数 即加入正小数至最近整数rat x 将实数x化为多项分数展开rats x 将实数x化为分数表示 第二章MATLAB程序设计基础 小整理 MATLAB常用的基本数学函数sign x 符号函数 Signumfunction 当x0时 sign x 1 rem x y 求x除以y的余数gcd x y 整数x和y的最大公因数 Greatestcommondivisor lcm x y 整数x和y的最小公倍数 Leastcommonmultiple exp x 自然指数pow2 x 2的指数log x 以e为底的对数 即自然对数log2 x 以2为底的对数log10 x 以10为底的对数 第二章MATLAB程序设计基础 实战1 函数abs功能数值的绝对值与复数的幅值格式Y abs X 返回参量X的每一个分量的绝对值 若X为复数的 则返回每一分量的幅值 abs X sqrt real X 2 imag X 2 例 x 18 z1 abs x y 2 4i z2 abs y 第二章MATLAB程序设计基础 实战2 函数sqrt功能求平方根函数格式Y sqrt X 数值的平方根运算例 x 16 z1 sqrt x y 18 z2 sqrt y f 2 4i z3 sqrt f 第二章MATLAB程序设计基础 实战3 函数exp功能以e为底数的指数函数格式Y exp X 对参量X的每一分量 求以e为底数的指数函数Y X中的分量可以为复数 对于复数分量如 z x i y 则相应地计算 e z e x cos y i sin y 例 x 3 z1 exp x y 3 z1 exp y f 2 4i z3 exp f 第二章MATLAB程序设计基础 实战4 函数log功能自然对数 即以e为底数的对数 格式Y log X 对参量X中的每一个元素计算自然对数 其中X中的元素可以是复数与负数 但由此可能得到意想不到的结果 若z x i y 则log对复数的计算如下 log z log abs z i atan2 y x 例 x 20 0855 z1 log x f 2 4i z3 log f 下面的语句可以得到无理数 的近似值 pai abs log 1 第二章MATLAB程序设计基础 实战5 函数log10功能常用对数 即以10为底数的对数 格式Y log10 X 计算X中的每一个元素的常用对数 若X中出现复数 则可能得到意想不到的结果 例 x 10 z1 log10 x y 10 z1 log10 y f 2 4i z3 log10 f 第二章MATLAB程序设计基础 实战6 函数lcm功能整数x和y的最小公倍数格式z lcm x y 计算整数x和y的最小公倍数例 x 10 y 23 z1 lcm x y x 10 y 2 z2 lcm x y x 10 y 2 z3 lcm x y 第二章MATLAB程序设计基础 实战7 函数gcd功能整数x和y的最大公约数格式z gcd x y 计算整数x和y的最大公约数例 x 10 y 23 z1 gcd x y x 10 y 2 z2 gcd x y x 10 y 2 z3 gcd x y 第二章MATLAB程序设计基础 实战8 函数real功能复数的实数部分 格式Y real Z 返回输入参量Z的每一个分量的实数部分 例 f 3 8i z real f 第二章MATLAB程序设计基础 实战9 函数imag功能复数的虚数部分格式Y imag Z 返回输入参量Z的每一个分量的虚数部分 例 f 9 7i z imag f 第二章MATLAB程序设计基础 实战10 函数conj功能复数的共轭值格式ZC conj Z 返回参量Z的每一个分量的共轭复数 conj Z real Z i imag Z 例 f 9 7i z conj f 如果两复数的实部相等 虚部系数互为相反数 那么 这两个复数叫做共轭复数 共轭复数的乘积是一个实数 提问 什么是复数的共轭值 第二章MATLAB程序设计基础 实战11 函数sin功能正弦函数格式Y sin X 计算参量X 可以是向量 矩阵 元素可以是复数 中每一个角度分量的正弦值Y 所有分量的角度单位为弧度值 第二章MATLAB程序设计基础 例计算下式的结果 其中x 3 5度 Y 6 7度 x pi 180 3 5 y pi 180 6 7 z sin abs x abs y sqrt cos abs x y 第二章MATLAB程序设计基础 实战12 函数cos功能余弦函数格式Y cos X 计算参量X 可以是向量 矩阵 元素可以是复数 中每一个角度分量的余弦值Y 所有分量的角度单位为弧度值 第二章MATLAB程序设计基础 例计算下式的结果 其中x 3 5度 Y 6 7度 x pi 180 3 5 y pi 180 6 7 z sin abs x abs y sqrt cos abs x y 第二章MATLAB程序设计基础 实战13 函数asin功能反正弦函数格式Y asin X 返回参量X 可以是向量 矩阵 中每一个 元素的反正弦函数值Y 若X中有的分量处于 1 1 之间 则Y asin X 对应的分量处于 2 2 若X中有分量在区间 1 1 之外 则Y asin X 对应的分量为复数 第二章MATLAB程序设计基础 实战13 函数asin例题 x 1 z1 asin x x 2 z2 asin x 第二章MATLAB程序设计基础 实战14 函数acos功能反余弦函数格式Y acos X 返回参量X 可以是向量 矩阵 中每一个 元素的反余弦函数值Y 若X中有的分量处于 1 1 之间 则Y acos X 对应的分量处于 0 之间 若X中有分量在区间 1 1 之外 则Y acos X 对应的分量为复数 第二章MATLAB程序设计基础 实战14 函数acos例题 x 1 z1 acos x x 2 z2 acos x 第二章MATLAB程序设计基础 实战15 函数tan功能正切函数格式Y tan X 计算参量X 可以是向量 矩阵 元素可以是复数 中每一个角度分量的正切值Y 所有角度分量的单位为弧度值 第二章MATLAB程序设计基础 实战15 函数tan特别地 我们要指出的是 tan pi 2 和tan pi 2 并不是精确的值 因为matlab中的pi仅仅是精确值 近似的表示值而已 例题 tan pi 2 x pi 2 0 01 0 01 pi 2 0 01 plot x tan x gridon 第二章MATLAB程序设计基础 实战16 函数atan功能反正切函数格式Y atan X 返回参量X 可以是向量 矩阵 中每一个 元素的反正切函数值Y 若X中有的分量为实数 则Y atan X 对应 的分量处于 2 2 之间 例 atan 0 第二章MATLAB程序设计基础 这些函数只是MATLAB提供的函数中的很小的一部分 更多的函数学习还要依靠大家在实验课上的实战演练 第二章MATLAB程序设计基础 学生演练实例1 例 求的算术运算结果 2 第二章MATLAB程序设计基础 学生演练实例2 例 求的算术运算结果 0 0045 第二章MATLAB程序设计基础 学生演练实例3 例 复数 计算 0 3349 5 5801i 第二章MATLAB程序设计基础 学生演练实例4 例 求的算术运算结果 0 5000 第二章MATLAB程序设计基础 学生演练实例5 例 求的算术运算结果 0 3633 课后任务 一 熟练使用常用函数 初等 二 理解应用题并转化为数学模型 疑问 精度问题有时候函数结果返回0而不是0 0000 按理 0 0 0000 类似的问题还有 在matlab中为什么sin pi 0 而cos pi 却等于 1 而不是 1 0000 而formatbankSin 0 0 00 cos pi 等于 1 00 疑问 解释一 MATLAB中的数字是默认按照双精度型浮点数存储的 他们的区别可能有两种情况 一 0代表符号值的0 是没有经过舍入的精确值 而0 0000是浮点数 有舍入 由于MATLAB中默认数据类型是浮点型 所以在输入计算时两者是没有差别的 二 在MATLAB的输出结果中同样是浮点数 如果一个矩阵中各元素的数量级相差较大 同时显示出来时有的元素会显示为0 0000 如果你只单独显示这一个数 发现它只是很小 并不是0 疑问 解释二 Sin是build in函数 看不到源代码 让sin 0 0而让sin pi 0 cos pi 1等完全由mathworks公司函数内部定义 疑问 看如下的代码 分析 x 0 forn 1 82x x 0 01endx 0 82 x 0 forn 1 82x x 1endx 82 关于上机 实验课需要我们干什么 一 实验课前的知识点预习 二 准备实验课要演练的例题 三 实验课后的总结 第二章MATLAB程序设计基础 第三节教学目标1一维数组创建和引用2二维数组创建和引用3特殊数组 第二章MATLAB程序设计基础 一 一维数组的创建建立方法一 直接输入法建立方法二 冒号法建立方法三 特殊方法 第二章MATLAB程序设计基础 一 一维数组的创建建立方法一 直接输入法 A 1234 A 1 2 3 4 第二章MATLAB程序设计基础 一 一维数组的创建建立方法二 冒号法调用格式 A 初始量 步长 终止量 第二章MATLAB程序设计基础 一 一维数组的创建建立方法二 冒号法例题 建立数组A 其中A 1 2 3 4 5 A 1 1 5 A 1 5 第二章MATLAB程序设计基础 一 一维数组的创建建立方法三 特殊方法调用格式 A linspace 初始量 终止量 数组元素个数 B logspace 初始量 终止量 数组元素个数 第二章MATLAB程序设计基础 例题 生成数组A 其中A 1 2 3 4 5 A linspace 1 5 5 A linspace 1 5 5 5 A linspace 1 5 5 5 第二章MATLAB程序设计基础 例题 生成数组B logspace 0 2 5 B logspace 0 2 5 第二章MATLAB程序设计基础 例题 生成数组B logspace 1 pi 5 B logspace 1 pi 5 例题 生成数组B logspace 1 3 1 B logspace 1 3 1 第二章MATLAB程序设计基础 一 一维数组的创建注意事项 logspace y1 y2 N 表示在10 y1和10 y2之间插入N 2个元素 组成一个含有N个元素的数组 如果y2 pi 则表示在10 y1和pi之间插入N 2个元素 如果N 2 则返回10 y2 第二章MATLAB程序设计基础 二一维数组的引用 引用格式 arrayName n 引用一维数组中的第n个元素arrayName n1 n2 引用一维数组中的第n1至n2个元素arrayName n1n2 引用一维数组中的第n1和n2个元素引申 arrayName n1 n2 n3 引用一维数组中的第n1至n3个元素 步长为n2 第二章MATLAB程序设计基础 二一维数组的引用 例题 A 1 2 3 4 5 A 3 A 1 3 A 1 2 5 第二章MATLAB程序设计基础 二维数组的创建直接输入法文件生成法 M文件 txt文件 excel文件 dat文件等 后面再讲 第二章MATLAB程序设计基础 二维数组的创建例题 myArray 123456 654321 5 sqrt 25 10 5 0 5 abs 5 5 第二章MATLAB程序设计基础 四二维数组的引用 引用格式 arrayName m n 引用二维数组的第m行n列的元素arrayName m 引用二维数组的第m行的所有列元素arrayName n 引用二维数组的第n列的所有行元素arrayName m1 m2 n 引用二维数组的第n列中m1至m2行的元素arrayName m n1 n2 引用二维数组的第m行中n1至n2列的元素arrayName m1m2 n 引用二维数组的第n列中m1行和m2行的元素arrayName m n1n2 引用二维数组的第m行中n1列和n2列的元 第二章MATLAB程序设计基础 四二维数组的引用 例题 A 1 2 3 4 5 6 7 8 9 10 A 1 A 3 A 2 1 2 A 1 2 2 第二章MATLAB程序设计基础 数组相关的习题 MATLAB演练 1 C数组定义如下 写出子数组的内容 c 1 1 3 23 40 6 0 61 1 0 63 1 1 30 65 50 c 2 c end c 1 2 2 end c 6 c 4 end c 1 2 2 4 c 13 2 c 22 33 c 222 333 2 当赋值语句执行后 数组的内容是什么 1 a 123 456 789 a 31 a 13 2 a 123 456 789 a 31 a 22 3 a 123 456 789 a a 2 4 a 123 456 789 a a 22 3 当语句执行后 a数组的内容是什么 1 a eye 3 3 b 123 a 2 b 2 a eye 3 3 b 456 a 3 b 3 a eye 3 3 b 789 a 3 b 312 4 a eye 3 3 b 789 a 3 b 312 课后任务 一 熟练掌握创建数组 二 熟练掌握引用数组 第二章MATLAB程序设计基础 五特殊数组 1 字符数组调用格式 s string name str1 str2 str3 第二章MATLAB程序设计基础 五特殊数组 1 字符数组 s1 who are you s2 I m wang ling s3 s1s2 m size s1 n size s2 k size s3 第二章MATLAB程序设计基础 五特殊数组 1 字符数组 字符串转换方式一函数命令 char调用格式 S char T 表示将正整数矩阵转换成字符串矩阵S 第二章MATLAB程序设计基础 五特殊数组 1 字符数组 字符串转换方式一 T 10267132 509578 S char T 第二章MATLAB程序设计基础 五特殊数组 1 字符数组 字符串转换方式二函数命令 int2str num2str调用格式 int2str A num2str A k num2str A format 表示将数或矩阵转换成字符串或字符串矩阵 第二章MATLAB程序设计基础 五特殊数组 1 字符数组 字符串转换方式二 A 1 26 73 2 5 59 57 8 B1 int2str A B2 num2str A 0 0 B3 num2str A 10 3f B1 B2 B2 B3 B1 B3 第二章MATLAB程序设计基础 五特殊数组 1 字符数组 字符串转换方式三函数命令 eval str2num调用格式 eval S str2num S 表示将字符串S转化为数值 第二章MATLAB程序设计基础 五特殊数组 1 字符数组 字符串转换方式三 a 12 w 13 x 12 S a sin w x val eval S v2 subs S 第二章MATLAB程序设计基础 五特殊数组 1 字符数组 字符串转换方式三 v1 str2num S str2num 3 14159e0 str2num 12 34 ans 3 运算练习clear fun abs x x 2 eval fun double fun 第二章MATLAB程序设计基础 五特殊数组 1 字符数组 字符串比较函数命令 strcmp调用格式 strcmp str1 str2 表示将两个字符串进行比较 相等时返回逻辑值为真 第二章MATLAB程序设计基础 五特殊数组 1 字符数组 字符串比较 str1 bad str2 bad str3 dab strcmp str1 str2 strcmp str1 str3 第二章MATLAB程序设计基础 五特殊数组 1 字符数组 字符串转内嵌函数函数命令 inline调用格式 inline exr inline expr arg1 arg2 表示将字符串表达式转化为函数表达式 用来构造函数 第二章MATLAB程序设计基础 五特殊数组 1 字符数组 字符串转内嵌函数 help g inline t 2 f inline 3 sin 2 x 2 f1 inline 5 sin x 3 cos y x y 第二章MATLAB程序设计基础 五特殊数组 2 结构数组 提问 结构体的概念 如果让你统计全班同学基本信息 你的数据怎么组织 第二章MATLAB程序设计基础 五特殊数组 2 结构数组 结构数组 是根据属性名组织起来的不同类型数据的集合 结构数组通过属性名来引用 第二章MATLAB程序设计基础 五特殊数组 2 结构数组函数命令 struct调用格式 sn struct filed1 filed2 第二章MATLAB程序设计基础 五特殊数组 2 结构数组例题 结构数组student有name和age两个属性 两组数据 liu 20 Wang 21 并求student 1 student 2 student 2 name 第二章MATLAB程序设计基础 五特殊数组 2 结构数组 student struct name Liu Wang Age 20 21 student 1 student 2 student 2 name 第二章MATLAB程序设计基础 五特殊数组 2 结构数组例 建立学生档案结构体 并计算每个学生的总成绩 page41 学号 number 数值型姓名 name 字符型身高 height 数值型英语考试成绩 English 数值型数学考试成绩 Math 数值型物理考试成绩 Physics 数值型 第二章MATLAB程序设计基础 五特殊数组 2 结构数组stud 1 number input pleaseinputnumber stud 1 math input pleaseinputmath stud 1 physics input pleaseinputphysics stud 1 english input pleaseinputenglish stud 1 total stud 1 math stud 1 physics stud 1 english 第二章MATLAB程序设计基础 五特殊数组 2 结构数组 n input pleaseinputn fori 1 nstud i number input pleaseinputnumber stud i math input pleaseinputmath stud i physics input pleaseinputphysics stud i english input pleaseinputenglish stud i total stud i math stud i physics stud i english end 第二章MATLAB程序设计基础 五特殊数组 2 结构数组 三个相关的函数命令 fieldnames size rmfield 第二章MATLAB程序设计基础 五特殊数组 2 结构数组 fieldnames stud size stud rmfield stud number 第二章MATLAB程序设计基础 五特殊数组 2 结构数组结构数组的嵌套例题 page43 建立嵌套的结构数组 a struct name Mike number 1000 score struct math 90 english 89 physics 97 a a 1 number a 1 score 第二章MATLAB程序设计基础 五特殊数组 3 细胞数组 提问 普通数组元素之间有什么关联 结构数组元素之间有什么关联 其特殊性在哪里 还有没有更特殊的可能性 第二章MATLAB程序设计基础 五特殊数组 3 细胞数组函数命令 cell细胞数组通常用 创建 数据通过数组下标引用 第二章MATLAB程序设计基础 五特殊数组 3 细胞数组 B cell 5 3 B 1 1 143 058 729 B 1 2 Annecat B 2 1 3 7i B 2 2 0 pi 10 pi B 3 1 342 976 851 B 3 2 AnneSmith B 4 1 3 7i B 4 2 pi pi 10 pi 第二章MATLAB程序设计基础 五特殊数组 3 细胞数组 celldisp和cellplot方法 B 1 1 143 058 729 B 1 2 Annecat B 2 1 3 7i B 2 2 0 pi 10 pi B celldisp B cellplot B 第二章MATLAB程序设计基础 五特殊数组 3 细胞数组 引用细胞数组元素 C B 1 1 C B 1 1 D B 1 1 2 2 第二章MATLAB程序设计基础 五特殊数组 3 细胞数组 细胞数组的更新 B 3 1 No 1 B 3 2 No 2 B 3 3 No 3 B M B 1 3 1 2 第二章MATLAB程序设计基础 五特殊数组 3 细胞数组 细胞数组的删除 B 3 B 2 3 两次操作的区别 B 2 2 3 0 第二章MATLAB程序设计基础 五特殊数组 3 细胞数组 细胞数组中reshape的使用 A cell 3 4 size A B reshape A 6 2 size B 第二章MATLAB程序设计基础 五特殊数组 3 细胞数组细胞数组和数值数组的转换例题 将二维细胞数组F转换为三维数值数据 第二章MATLAB程序设计基础 一 矩阵8特殊数组 2 细胞数组 F 1 1 12 34 F 1 2 10 01 F 2 1 78 41 F 2 2 4i3 2i 1 8i5 fork 1 4fori 1 2forj 1 2NUM i j k F k i j endendend F NUM 第二章MATLAB程序设计基础 五特殊数组 4 结构细胞数组将结构数组放入细胞数组中 可组成结构细胞数组 第二章MATLAB程序设计基础 五特殊数组 4 结构细胞数组 c str cell 1 2 c str 1 label 12 2 94 12 5 94 c str 1 test 47525548 17223511 c str 2 xdata 0 0030 411 982 1217 11 c str 2 ydata 351809 c str 2 zdata 0 60 812 23 4 c str 1 1 test 2 2 课后任务 一 掌握数组的创建 二 掌握数组的引用 三 掌握特殊数组的创建和引用 四 掌握数组的其他相关操作 第二章MATLAB程序设计基础 第四节教学目标MATLAB的运算符 算术 关系 逻辑 第二章MATLAB程序设计基础 一 算术运算符算术运算符 表示算术加法和减法 表示算术乘法和除法 表示左除 表示乘方 表示点乘 表示点左除 表示点右除 表示点乘方 第二章MATLAB程序设计基础 一 算术运算符优先级算术运算符优先级最高 关系运算符次之 而逻辑运算符的优先级最低 实际应用中 可以通过括号来调整运算过程 第二章MATLAB程序设计基础 一 算术运算符 例题 a 5 b 6 求解以下运算结果 a b a b a b a b a b a b 第二章MATLAB程序设计基础 一 算术运算符 例题 a 135 b 246 求解以下运算结果 a b a b a b a b a b a b a b a b a b a b 第二章MATLAB程序设计基础 二 关系运算符表示大于 表示大于或等于 表示等于 表示不等于 第二章MATLAB程序设计基础 例题 已知二维数组A 12 23 求A中等于2的元素个数n A 12 23 B A 2 n sum sum B 第二章MATLAB程序设计基础 三 逻辑运算符 逻辑与 and 表示两个数组的对应元素都是1 结果为1 否则为0 逻辑或 or 表示对应元素只要有一个是1 结果为1 否则为0 非 not 表示与元素相反xor异或 表示对应元素不同 结果为1 否则为0 第二章MATLAB程序设计基础 例题 已知数组A 010 101 和B 111 000 求A 第二章MATLAB程序设计基础 四 逻辑函数 all查看数组的行或者列 每行或列的所有元素为1 结果为1any查看数组的行或者列 每行或列只要有一个元素为1 结果为1exist查看变量或者函数是否存在find找出非零元素的位置标识isempty判断矩阵是否为空矩阵isequal判断对象是否相等isnumeric判断对象是否为数值型bitand按位与bitor按位或bitcmp按位反码 共n位 n必须不小于操作数的二进制位数bitxor按位异或 捷径与 捷径或 第二章MATLAB程序设计基础 例题 A 135 B 135 246 求all A all B all B 2 any A any B any B 2 A 135 B 135 246 all A all B all B 2 any A any B any B 2 第二章MATLAB程序设计基础 例题 观察以下函数的返回值 exist work exist myfile exist C windows exist work exist exam2 33 exist C windows 说明 表2 3exist函数非常有用 其返回值为数字0 7 分别表示不同的含义 第二章MATLAB程序设计基础 例题 数组A 103 301 求find A m n find A m n v find A A 103 301 find A m n find A m n v find A 第二章MATLAB程序设计基础 例题 已知二维数组A 0 10 6 B 0 10 6 C TinTin 求isequal A B isequal A C isnumeric A isnumeric B isnumeric C A 0 10 6 B 0 10 6 C TinTin isequal A B isequal A C isnumeric A isnumeric B isnumeric C 第二章MATLAB程序设计基础 例题 已知A 20 B 35 求bitand A B bitor A B bitcmp A 5 bitxor A B A 20 B 35 bitand A B bitor A B bitcmp A 5 bitxor A B 第二章MATLAB程序设计基础 例题 执行下面的命令 观察运行结果 体会捷径与和捷径或 可以在exam2 2 gvar1 m中设置断点以更好观察 mycmp exist exam2 2 gvar1 m 2 mycmp b 0 a b 10 关系及逻辑运算练习1A 1 9 B 10 A r0 A0 a b a c b c 关系及逻辑运算练习3find 1020 3040 4030 2010 a b find 1020 3040 4030 2010 all 12 34 1 any 12 34 1 关系及逻辑运算练习4A 2 1 0 0 1 2 3 L1 A 1 L2 A 0 A 2 课后任务 掌握算术 关系 逻辑运算符 第二章MATLAB程序设计基础 第五节教学目标MATLAB的三种控制结构MATLAB的M文件 命令文件和函数文件 MATLAB函数MATLAB函数调用和参数传递MATLAB的调试 第二章MATLAB程序设计基础 一 MATLAB的三种控制结构 按照程序设计的观点 任何算法功能都可以通过程序模块组成的三种基本程序结构的组合来实现 顺序结构 程序按程序语句或模块在执行流中的顺序逐个执行 选择结构 程序按设定的条件实现程序执行流的多路分支 循环结构 程序按给定的条件重复地执行指定的程序段或模块 第二章MATLAB程序设计基础 一 MATLAB的三种控制结构顺序结构 只需将程序语句顺序排列即可 第二章MATLAB程序设计基础 一 MATLAB的三种控制结构2选择结构 选择结构由两种语句结构实现 if语句switch语句 第二章MATLAB程序设计基础 一 MATLAB的三种控制结构2选择结构 if语句 if表达式程序模块1else程序模块2end 第二章MATLAB程序设计基础 if表达式程序模块end 一 MATLAB的三种控制结构2选择结构 if语句 第二章MATLAB程序设计基础 if表达式1程序模块1elseif表达式2程序模块2 elseif表达式n程序模块nelse程序模块n 1end 一 MATLAB的三种控制结构2选择结构 if语句 第二章MATLAB程序设计基础 例题 将百分制的学生成绩转换为五级制的成绩输出 clearn input 输入n ifn 90r A elseifn 80r B elseifn 70r C elseifn 60r D elser E end 第二章MATLAB程序设计基础 一 MATLAB的三种控制结构2选择结构 switch语句 第二章MATLAB程序设计基础 一 MATLAB的三种控制结构2选择结构 switch语句 switch表达式case数值1程序模块1 case数值2程序模块2 case数值n程序模块n otherwise程序模块n 1end 第二章MATLAB程序设计基础 例题 将百分制的学生成绩转换为五级制的成绩输出 clearn input 输入n panduan fix n 10 switchpanduancase 10 9 r A case8r B case7r C case6r D otherwiser E end clearn input 输入n switchfix n 10 case 10 9 r A case8r B case7r C case6r D otherwiser E end 第二章MATLAB程序设计基础 一 MATLAB的三种控制结构3循环结构 循环结构可以由两种语句结构实现 for语句while语句 第二章MATLAB程序设计基础 一 MATLAB的三种控制结构3循环结构 for语句 for循环变量 起始值 步长 终止值循环体end 第二章MATLAB程序设计基础 一 MATLAB的三种控制结构 例 使用for结构计算1 2 3 100clearsum 0 fori 1 1 100sum sum i endsum 第二章MATLAB程序设计基础 一 MATLAB的三种控制结构3循环结构 while语句 while表达式循环体end 第二章MATLAB程序设计基础 一 MATLAB的三种控制结构 例 使用while循环计算1 2 3 100clearsum 0 i 0 whilei 100i i 1 sum sum i endsum 第二章MATLAB程序设计基础 二 其他流程控制语句1break和continue语句 break语句用于立即跳出含该break语句的循环语句 continue语句用于提前结束当前循环 第二章MATLAB程序设计基础 二 其他流程控制语句1break和continue语句 break语句用于立即跳出含该break语句的循环语句 continue语句用于提前结束当前循环 forii 1 5 ifii 3 break endfpr

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论