Matlab一维数组及其应用

上传人:宝路 文档编号:48219981 上传时间:2018-07-11 格式:PPT 页数:65 大小:730.62KB
返回 下载 相关 举报
Matlab一维数组及其应用_第1页
第1页 / 共65页
Matlab一维数组及其应用_第2页
第2页 / 共65页
Matlab一维数组及其应用_第3页
第3页 / 共65页
Matlab一维数组及其应用_第4页
第4页 / 共65页
Matlab一维数组及其应用_第5页
第5页 / 共65页
点击查看更多>>
资源描述

《Matlab一维数组及其应用》由会员分享,可在线阅读,更多相关《Matlab一维数组及其应用(65页珍藏版)》请在金锄头文库上搜索。

1、Matlab:一维数组及其应用一、一维数组 二、一维数组在二维绘图中的应用 三、一维数组在向量运算中的应用 四、一维数组在一元多项式运算中的应用一、一维数组 数值数组(简称为数组)是Matlab中最重要的 一种内建数据类型 数组运算是Matlab软件定义的运算规则, 其目的是为了数据管理方便、操作简单、指 令形式自然和执行计算的有效。 无论在数组上施加什么运算(加减乘除或函 数),总认定那种运算对被运算数组中的每个 元素(Element)进行运算。1、一维数组的两种形式 行数组:n个元素排成一行 又称为行向量(row vector) 列数组:m个元素排成一列 又称为列向量(column vec

2、tor)一般情况下,向量指列向量2、用方括号 创建一维数组 整个数组放在方括号里 行数组元素用空格或逗号分隔x = 2, pi/2, sqrt(3), 3+5i 列数组元素用分号分隔y = 2;pi;3/4;j 标点符号一定要在英文状态下输入 x = 生成空数组3、用冒号创建一维数组 x = a:b x = a:inc:b默认 inc = 1x = a,a+inc,a+2*inc,a,b必须为实数a是数组x中的第一个元素,b不一定是数组x 的最后一个元素。4、用linspace()函数创建一维数组x = linspace(a,b) x = linspace(a,b,n)x = linspace

3、(0,pi,10)x = linspace(1+i,100+100*i)在a,b区间内生成 n 个数据,包括a和b在内默认 n = 100若a,b为实数,等效于 :5、用logspace()函数创建一维数组x = logspace(a,b)默认n = 50x = logspace(a,b,n)x = logspace(a,pi)6、引用一维数组中的单个元素x = 1:5 k = 2 a = x(k) 引用数组 x 中的第 k 个元素, 将其赋值给变量 a b = x(end) 引用数组 x 中的最后一个元素, 将其赋值给变量 bc = x(8) 会出现什么结果?7、一维数组中单个元素的赋值x

4、= 1:5 a = 1.5 k = 3 x(k) = 0将 0 赋值给数组 x 中的第 k 个元素 x(end) = a将 a 赋值给数组 x 中的最后一个元素x(8) = 6.5 会出现什么结果?8、引用一维数组中的子数组引用一维数组x中的第2、5、9个元素, 将其赋值给变量 ax = linspace(1,5) a = x(2,5,9)b = x(end:-1:1)c = x(1:2:end)d = x(2:2:end)b = ? c = ? d = ?x = linspace(1,5) s = 2,5,9 a = x(s)9、给一维数组中的子数组赋值将2、7分别赋值给x的第1、4个元素x

5、 = linspace(1,5) x(1,4) = 2,7x = linspace(1,5) s = 1,4 a = 2,7 x(s) = a10、Matlab中的函数 在一维数组上的运算规则Matlab中的很多函数都可以直接以数组作为输 入参数,函数输出也为数组。输入为行数组,则 输出也为行数组输入为列数组,则 输出也为列数组10、一维数组的转置运算x. xx做转置(行列,列行) x做共轭转置若x的元素均为实数,则x.与x的结果相同x = (1:100)11、一维数组与一维数组的运算x + y x - y x.*y x./y x.y x.y加 减 乘 右除 左除 幂两个一维数组之间进行运算,

6、要求: 1、两个数组都为行数组(或都为列数组) 2、数组元素个数相同,对应位置的元素做C语言中,可 使用循环语句完成 类似的操作y + x y - x y.*x y./x y.x y.x12、一维数组与数的运算若x为数组,c为数(实数或复数),x + c x c c.*x x./c x.c x.c加 减 乘 右除 左除 幂数组的每个元素 都与数c做c + x c - x c*x c./x c.x c.x 13、与一维数组相关的函数max(x) a,b = max(x) max(x,y)返回x中的最大值 返回x的最大值(a)及最大值在x中的位置(b) 返回一向量,元素为x,y相同位置上的较大值m

7、in(x) c,d= min(x) min(x,y)返回x中的最小值 返回x的最小值(c)及最小值在x中的位置 返回一向量,元素为x,y相同位置上的较小值mean(x)返回x的平均值median(x)返回x中元素的中值std(x)计算x中的数值的标准差sum(x)计算x的所有元素的和cumsum(x)返回一个包含x的元素的累加和的向量 ,其大小与x相同prod(x)计算x的元素的积cumprod(x)返回一个包含x的元素的累乘积的向量 ,其大小与x相同sort(x)返回x中的元素按升序排序的向量length(x)返回数组的长度(行数或列数种的较大 值)numel(x)返回数组元素的个数一维数组

8、相关函数的应用 以线性拟合为例nT()R() 119.176.30 225.077.80 330.179.25 436.080.80 540.082.35 645.183.90 750.085.10测得铜导线在温度Ti下的电阻为Ri,编写一个M脚本文 件,用matlab提供的数组函数对数据进行线性拟合,求出斜率 、截距和相关系数,并与origin的拟合结果进行比较。x=0:0.2:2*pi; plot(x,cos(x),k*-);二、一维数组在二维绘图中的应用1、plot(a,b,string)a, b 都是一维数组,以 a 中元素为横坐标, b 中元素 为纵坐标作平面曲线。 a, b 必须具

9、有相同长度。string 是用 单引号 括起来的字符串,用来指定图形的属性(点、线的形 状和颜色)黑色、实线 离散点用星号属性可以全部指定,也 可以只指定其中某几个。 排列顺序任意2、线型、标记和颜色线型点标记颜色 - 实线 : 点线 -. 点划线 - 虚线. 点 o 小圆圈 x 叉号 + 加号 星号 s 方格 d 菱形v 下三角 上三角右三角 p 五角星 h 六角星b 蓝色 g 绿色 r 红色 c 青色 m 棕色 y 黄色 k 黑色 w 白色3、用plot函数同时绘制多条曲线plot(x1,y1,s1,x2,y2,s2, )x1,y1,s1第一条曲线及其属性 x2,y2,s2 第二条曲线及其

10、属性 属性可以不写x= 0:pi/10:2*pi;y1=sin(x)y2=cos(x)plot(x,y1,x,y2);4、在已存在的图形上添加新图形 可以使用hold命令在一个已经存在得图形上添加 一个新的图形。 hold on:在输入新的plot函数得时候,matlab不 会将现存得坐标轴删除,而是将新得曲线添加到当 前的坐标轴中。当新的数据超出了当前坐标限的范 围,matlab就将坐标轴重新刻度。 hold off:将当前的图形窗口中的图形释放,用以 绘制新的图形。 hold:实现hold设置的切换。 ishold:查询hold当前是on还是off例:使用hold绘制多个图形x= 0:pi

11、/10:2*pi;y1=sin(x) y2=cos(x)plot(x,y1);hold on; plot(x,y2);5、在一个图形窗口中绘制多个子图一个图形窗口可以包含多个子图,每个子图 拥有自己的坐标轴subplot(m,n,p) 将一个绘图窗口分割成 mn 个子图,并将第 p 个子图选定为当前的绘图区域。子图从最上边一行开始 ,从左至右、从上至下 依次编号例:使用子图x= 0:pi/10:2*pi;y1=sin(x)y2=cos(x)subplot(2,2,1);plot(x,y1);subplot(2,2,2);plot(x,y2);被激活的子图在用户输入另 一个subplot或者fi

12、gure命令之前 会一直保持被激活状态。当一个新的subplot命令改变 了在图形窗口中的子图数量的时 候,原来的那些子图就被擦除掉 了,以便给新的子图腾出空间。为了回到默认的模式并且在 整个图形窗口中只用一套坐标轴 ,可以使用命令subplot(1,1,1)6、在多个图形窗口中绘图 激活绘图窗口 figure(n) 关闭图形窗口 close(n) close all 擦除窗口的内容 clf:将一个图形窗口的内容擦除而不关闭它。 clf reset:将当前的图形窗口擦除,然后将诸如 hold这样的所有属性重新设置为它们的默认状态。例:使用多个图形窗口x= 0:pi/10:2*pi;y1=sin

13、(x) y2=cos(x)figure(1); plot(x,y1);figure(2); plot(x,y2);为了在一个已有的图形窗 口中绘制一个新的图形,这个 窗口必须是激活的,或者是当 前的图形窗口。上机练习三、一维数组在向量运算中的应用1、向量的模(长度)a = 4,3,1d = sqrt(sum(a.*a)或: d = sqrt(sum(a.2)2、两点之间的距离a = 4,3,1b = 5,2,3AB = sqrt(sum(a - b).2)3、向量的方向角与方向余弦,单位向量a = 4,3,1d = sqrt(sum(a.2)e0 = a./d4、向量的线性运算a = 4,3,

14、1 b = 5,2,3 c = 1.6直接利用matlab的数组运算规则即可进行运算pab = a + b sab = a b d = c*a5、向量的内积(点积,点乘)dot(a,b) =sqrt(dot(a,a)Matlab中提供了 dot() 函数实现向量的内积6、两个向量之间的夹角tmp = dot(a,b)/sqrt(dot(a,a)/sqrt(dot(b,b) theta = acos(tmp)7、向量的叉积(叉乘)cross(a,b) = Matlab中提供了 cross() 函数实现向量的内积8、向量的混合积:dot(cross(a,b),c)上机练习:3.以A(1,2,3),

15、B(2,0,5),C(4,2,-1)为顶点的三角形 的面积。4.求以A(0,0,2),B(3,0,5),C(1,1,0),D(4,1,2)为 顶点的四面体的体积。四、一维数组在一元多项式运算中的应用借助matlab提供的函数,处理多项式是一件非常简单的事 情,很容易对多项式进行积分、微分以及求根的操作。一元多项式在代数中占有非常重要的地位。在实际应用 中如对实验数据的插值、微商和曲线拟合等,都要大量用到多 项式;在矩阵分析时,也要用到一元多项式的概念。多项式函 数是形式最简单的函数,也是最容易计算的函数,从理论上讲 ,它可以表示绝大多数复杂函数。在许多计算机的计算和编程 中,很多函数值如sin

16、(x),cos(x)等的计算都是先将函数进行Tailor 展开为多项式进行逼近计算的,并且都能达到很高的精度。1、多项式的表示和创建在matlab中,一个一元多项式用一个行向量 来表示的,向量元素为多项式系数的降幂排列, 其中最后一个元素代表多项式中的0幂项。p = 1,-12,0,25,1162、多项式的符号表示poly2sym() 把系数向量表示的多项式转为符号表示poly2sym(p)用默认字符x来表示多项式的变量 poly2sym(p,v)用字符v来表示多项式的便量p = 1,-12,0,25,116 px = poly2sym(p) pt = poly2sym(p,t)3、计算多项式的值p = 1,- 12,0

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 中学教育 > 教学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号