版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第三讲第三讲 数值数组的创立和赋值数值数组的创立和赋值 matlab最大的特色可以说是它的矩阵操作了,它提供的相关命最大的特色可以说是它的矩阵操作了,它提供的相关命令可以很方便的解决与矩阵有关的数据处理,我们在学习的时候就令可以很方便的解决与矩阵有关的数据处理,我们在学习的时候就可以体会到它的好处,这是可以体会到它的好处,这是c语言或者语言或者excel都无法比较的都无法比较的. 我们将重点学习一维数值数组和二维数值数组的创立访问和操作我们将重点学习一维数值数组和二维数值数组的创立访问和操作,并将结合中国大学生数学建模比赛的实例加以练习,防止纸上谈并将结合中国大学生数学建模比赛的实例加以练习,
2、防止纸上谈兵。兵。3.1 一维数组的创立和寻访一维数组的创立和寻访一、一维数组的创立一、一维数组的创立1.一维数组的创立一维数组的创立1逐个元素输入法逐个元素输入法 向量的元素用中括号向量的元素用中括号括起来,假如是行向量,那么元素之间用逗号或者是括起来,假如是行向量,那么元素之间用逗号或者是空空格隔开;假如是列向量,那么元素之间用分号隔开分号表示换行。格隔开;假如是列向量,那么元素之间用分号隔开分号表示换行。例如例如: x=1,2,3,4,5,6,7,8 x=1 2 3 4 5 6 7 8 ;% 一维一维 1x8 数组数组或或 x=1,2,3,4,5,6,7,8 ;% 一维一维 1x8 数组
3、数组 sizex %查询查询x的大小的大小ans=1 8注意:注意:sizesize这个命令很有用这个命令很有用, ,用于查询向量或者是矩阵的维数,用于查询向量或者是矩阵的维数,sizesizex x返回的是返回的是一个一行两列的数组,数组的第一个元素表示一个一行两列的数组,数组的第一个元素表示x x的行数,第二个元素表示的行数,第二个元素表示x x的列数,知道了的列数,知道了sizesize的用法,同学们还可以借助于帮助的用法,同学们还可以借助于帮助help sizehelp size进一步熟悉它的用法。进一步熟悉它的用法。例如例如: x=1,2,3,4,5,6,7,8T x=1;2;3;4
4、;5;6;7;8 ;% 一维一维 8x1 数组数组 sizex %查询查询x的大小的大小ans=8 12冒号生成法冒号生成法这是通过这是通过“步长步长设定,生成一维设定,生成一维“行行数组的方法,通用的格式:数组的方法,通用的格式:x=a:c:ba是数组的第一个元素,是数组的第一个元素,c是间隔,假设是间隔,假设b-a是是c的整数倍,那么所生成的整数倍,那么所生成数组的最后一个元素等于数组的最后一个元素等于b,否那么小于,否那么小于b例:产生以起始值例:产生以起始值=1,增量值增量值=2,终止值终止值=13的数组的数组 x=1:2:13x = 1 3 5 7 9 11 13x=1:2:12x
5、= 1 3 5 7 9 11假如间隔为假如间隔为1,那么可以缺省,那么可以缺省例如:例如:x=1:10 x= 1 2 3 4 5 6 7 8 9 103利用利用linspace起始值起始值,终止值终止值,元素数目元素数目 x=linspace0,10,6; % 利用利用linspace,以起始值,以起始值=0,终终止值止值=10之间之间,元素数目元素数目=6x = 0 2 4 6 8 10二、一维数组的子数组寻访和赋值二、一维数组的子数组寻访和赋值例:例:x=8:-1:1x = 8 7 6 5 4 3 2 1 x2 %访问访问x的第二个元素的第二个元素ans=7 x2 4 5 %取取 x的第二
6、、四、五个元素组成一个新的数组的第二、四、五个元素组成一个新的数组ans=7 5 4 x1:5 % x的第前五个元素的第前五个元素ans = 8 7 6 5 4注意:注意:MATLAB中,访问向量中,访问向量x的第一个元素是的第一个元素是x1,并且用的是圆括号,并且用的是圆括号,注意与注意与C语言中的区别,不要混淆语言中的区别,不要混淆 x7:end % x的第七个元素后的元素的第七个元素后的元素ans = 2 1 x8:-1:5 % x的第的第8个元素和第个元素和第5个元素的倒排个元素的倒排ans = 1 2 3 4 y=findx5 % x中大于中大于5的元素的位置的元素的位置y = 1
7、2 3 xfindx5 %大家猜猜返回的是什么大家猜猜返回的是什么ans=ans= 8 7 6 8 7 6返回的是返回的是x x中大与中大与5 5的元素按照它们在的元素按照它们在x x中的顺序中的顺序 x3= % 删除第三个元素删除第三个元素x = 8 7 100 4 3 2 1 x8=-1.1 % 参加第八个元素参加第八个元素x = 8 7 100 4 3 2 1 -1.1 x x44=100 =100 %给给x的第四个元素重新给值的第四个元素重新给值100 x = 8 7 6 100 4 3 2 1三、一维数组的操作三、一维数组的操作minx %求求x最小的元素最小的元素ans=-1.1m
8、,n=minx%min可以有两个返回值,大家看看可以有两个返回值,大家看看m,n各表示什么各表示什么m = -1.1n = 8注意:注意:m表示表示x中最小的元素,中最小的元素,n表示这个元素在表示这个元素在x中的位置中的位置maxx %求求x最大的元素最大的元素ans=100m,n=maxx%max可以有两个返回值可以有两个返回值,与与min类似类似m = 100n = 3注意:注意:m表示表示x中最大的元素,中最大的元素,n表示这个元素在表示这个元素在x中的位置中的位置m =-1.1000 1.0000 2.0000 3.0000 4.0000 7.0000 8.0000 100.0000
9、n = 8 7 6 5 4 2 1 3m,n=sortx %sort可以有两个返回值,大家看看可以有两个返回值,大家看看m,n各表示什么各表示什么注意:比照一下,注意:比照一下,x=8,7, 100, 4, 3,2, 1, -1.1, m表示把表示把x中的元素按从小到大的顺序排序得到的新的向量,中的元素按从小到大的顺序排序得到的新的向量, n表示这个新的向量中的元素原来在表示这个新的向量中的元素原来在x中的位置中的位置sortx %对对x的元素按从小到大的顺序排序的元素按从小到大的顺序排序ans=-1.1 1 2 5 6 7 8 100m =-1.1000 1.0000 2.0000 3.00
10、00 4.0000 7.0000 8.0000 100.0000n = 8 7 6 5 4 2 1 3m,n=sortx %sort可以有两个返回值,大家看看可以有两个返回值,大家看看m,n各表示什么各表示什么sortx %对对x的元素按从小到大的顺序排序的元素按从小到大的顺序排序ans=-1.1 1 2 5 6 7 8 100考虑:把考虑:把x中的元素按从大到小的顺序排序怎么办,中的元素按从大到小的顺序排序怎么办, 而且还想知道而且还想知道n新的向量中的元素原来在新的向量中的元素原来在x中的位置中的位置解决:把解决:把n中的元素倒排中的元素倒排n=nend:-1:1;%把把x中的元素按从大到
11、小的顺序排序之后个元素原来的位置中的元素按从大到小的顺序排序之后个元素原来的位置m=xn; %把把x中的元素按从大到小的顺序排序得到的新向量中的元素按从大到小的顺序排序得到的新向量meanx %求求x元素的平均值元素的平均值ans=15.4875sumx %求求x元素的总和元素的总和ans=123.9000absx %对对x的元素取绝对值,得到一个新的向量的元素取绝对值,得到一个新的向量ans=8.0000 7.0000 100.0000 4.0000 3.0000 2.0000 1.0000 1.10003.2 二维数组矩阵的创立和寻访二维数组矩阵的创立和寻访一、二维数组矩阵的创立二维数组输
12、入必须有以下三个要素:1.整个输入必须以方括号“把所有元素括起来2.二维数组的行与行之间必须用分号“;或回车键【Enter】隔离3.二维数组元素必须由逗号“,或空格分隔【例例】输入矩阵输入矩阵987654321A1 1在键盘上输入以下内容在键盘上输入以下内容: : 以以 ; ; 区隔各列的元素区隔各列的元素A = 1,2,3; 4,5,6; 7,8,9 A = 1,2,3; 4,5,6; 7,8,9 2 2按按【EnterEnter】键,指令被执行。键,指令被执行。3 3在指令执行后,在指令执行后,MATLABMATLAB指令窗中将显示以下结果:指令窗中将显示以下结果:A =A = 1 2 3
13、 1 2 3 4 5 6 4 5 6 7 8 9 7 8 9 或者或者A=1,2,34,5,67,8,9 以下是显示结果以下是显示结果A = 1 2 3 4 5 6 7 8 9 二、二维数组的寻访和赋值二、二维数组的寻访和赋值1.访问格式:访问格式:Ar,c %输出输出A的第的第r行第行第c列的元素列的元素例:例:A2,1 %输出输出A的第的第2行第行第1列的元素列的元素ans=4赋值格式:赋值格式:Ar,c=s %给给A的第的第r行第行第c列的元素赋值列的元素赋值s例:例:A2,1=0 %给给A的第的第2行第行第1列的元素赋值列的元素赋值0A = 1 2 3 0 5 6 7 8 92.访问格
14、式:访问格式:Ar,: %输出输出A的第的第r行的所有元素行的所有元素例:例:A2,: %输出输出A的第的第2行所有元素行所有元素ans=0 5 6赋值格式:赋值格式:Ar,:=S %给给A的第的第r行的所有元素赋值行的所有元素赋值S注意:注意:A的第的第r行的元素个数必须与行的元素个数必须与S的元素个数一样的元素个数一样例:例:A2,: =8:10%给给A的第的第2行所有元素赋值行所有元素赋值8 9 10A = 1 2 3 8 9 10 7 8 93.访问格式:访问格式:A:,c %输出输出A的第的第c列所有元素列所有元素例:例:A:,1 %输出输出A第第1列所有元素列所有元素ans = 1
15、 8 7赋值格式:赋值格式:A:,c=S %给给A的第的第c列所有元素赋值列所有元素赋值S注意:注意:A的第的第c列的元素个数必须与列的元素个数必须与Sa的元素个数一样的元素个数一样例:例:A:,1=-1;-2;-3 %给给A的第的第1列所有元素赋值列所有元素赋值-1;-2;-3 A = -1 2 3 -2 9 10 -3 8 94. 访问格式:访问格式:A: %由由A的各列按自左到右的次序,首尾相接的各列按自左到右的次序,首尾相接而成的而成的“一维一维长列数组长列数组ans = -1 -2 -3 2 9 8 3 10 9赋值格式:赋值格式:A:=D %D必须是一个一维的数组,并且元素个数与必
16、须是一个一维的数组,并且元素个数与A一样一样例:例:A:=-9:-1A = -9 -6 -3 -8 -5 -2 -7 -4 -1考虑:把考虑:把A的的1、3行组成一个新矩阵行组成一个新矩阵B,命令:命令:B=A1 3,:把把A的各行改变顺序,按照的各行改变顺序,按照3、2、1行得到一个新的矩阵行得到一个新的矩阵命令:命令:A=Aend:-1:1,:删除删除A的第的第1、2行,行,命令:命令:A1 2,:=注意:对于列的操作是一样的道理注意:对于列的操作是一样的道理下面看一个实例:下面看一个实例:附件附件2 数据数据1300多名病人按照多名病人按照4种疗法服药大约每隔种疗法服药大约每隔8周测试的
17、周测试的CD4浓度。浓度。第第1列是病人编号,第列是病人编号,第2列是列是4种疗法的代码:种疗法的代码:第第3列是病人年龄,第列是病人年龄,第4列是测试列是测试CD4的时刻周,的时刻周,第第5列是测得的列是测得的CD4,取值,取值logCD4+1.题目是通过这些数据得出不同年龄段的人应用不同疗法的疗效。题目是通过这些数据得出不同年龄段的人应用不同疗法的疗效。那么首先应该处理这些数据,现阶段我们主要练惯用那么首先应该处理这些数据,现阶段我们主要练惯用matlab处理处理数据。数据。1.导入数据导入数据首先我们应该把这些数据构成的一个大的矩阵导入首先我们应该把这些数据构成的一个大的矩阵导入matl
18、ab,方法,方法有二:有二:1把文本文档把文本文档.txt文件文件中的矩阵导入中的矩阵导入matlab的的workspace注意注意,文本文档中只能是一个矩阵的形式文本文档中只能是一个矩阵的形式,不能含有其他的文字符不能含有其他的文字符号号首先把文档所在处设为当前的途径,以便首先把文档所在处设为当前的途径,以便matlab可以找到可以找到,最好给最好给这个文本重命名,最好是英文名,这个文本重命名,最好是英文名,比方说我们把比方说我们把“附件附件2.txt,命名为,命名为data.txt,设置好途径,在,设置好途径,在command window中输入中输入load data.txt回车之后就会
19、发如今回车之后就会发如今workspace中出现了一个变量:中出现了一个变量:data这就完成了文本文档中矩阵的导入这就完成了文本文档中矩阵的导入注意注意:格式是格式是load+空格空格+单引号单引号+文档名文档名.txt+单引号单引号2FileImport Data出现以下窗口,选择好文件出现以下窗口,选择好文件“翻开翻开就可以了就可以了选择选择“Next选择选择“Finish,workspace中就出现了中就出现了data这个变这个变量量2操作练习操作练习导入数据以后,我们做一些矩阵操作的练习导入数据以后,我们做一些矩阵操作的练习1把所有使用第一种疗法的病人的数据找出来,生成的新矩阵命名为
20、把所有使用第一种疗法的病人的数据找出来,生成的新矩阵命名为program1,并查看这个矩阵的大小,把,并查看这个矩阵的大小,把program1里里cd4浓度出现了浓度出现了0的所在的所在行删除。行删除。命令:命令:place1=finddata:,2=1;%找出找出data中第二列的等于中第二列的等于1的元素所在位置的元素所在位置 program1=dataplace1,:;% 把把data中第二列的等于中第二列的等于1的元素所在行提取出来组成一个新的矩阵的元素所在行提取出来组成一个新的矩阵%program1program1_size=sizeprogram1; %查询查询program1的大
21、小的大小zeroplace=findprogram1:,5=0;%找出找出program1第五列中等于第五列中等于0的元素的位置的元素的位置program1zeroplace,:=;% 把把program1第五列中等于第五列中等于0的元素所在行删除的元素所在行删除2 把把program1里的病人数据按年龄从里的病人数据按年龄从大到小大到小的顺序排列的顺序排列命令:命令:m,n=sortprogram1:,3;%把把program1的第三列的元素按从小到大的顺序排列的第三列的元素按从小到大的顺序排列,n返回的是返回的是%排列之后各元素原来的位置排列之后各元素原来的位置program1=progr
22、am1n,:;%把把program1各行的顺序改变了,按照第三列的序改变的各行的顺序改变了,按照第三列的序改变的%目前的序是从小到大目前的序是从小到大,要求是从大到小要求是从大到小,所以在把各行的顺序变一下所以在把各行的顺序变一下program1=program1end:-1:1,:;% 把把program1各行的顺序改变了,按照第三列的从大到小的序改各行的顺序改变了,按照第三列的从大到小的序改%变的变的3找出找出program1里年龄大于里年龄大于30岁的病人,把这些病人的数据保岁的病人,把这些病人的数据保存到矩阵存到矩阵program1_30中中,计算最后一列的平均值,找出最后一计算最后一列的平均值,找出最后一列的最大最小值及他们所在的位置列的最大最小值及他们所在的位置这个问题作为作业,保存在这个问题作为作业,保存在exercise3_0.m中中作业:作业:1.以起始值以起始值0,终止值,终止
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 二零二四年度出租车行业品牌推广协议
- 2024年度项目合作与投资合同模板
- 程序员2024年度团队协作协议
- 保密协议完整版
- 二零二四年度LED显示屏生产设备采购合同
- 2024年度电力传输合同标的:新建跨区域电力线路工程设计与施工
- 北京市二零二四年度广告代理合同
- 2024年度购物中心品牌特许经营合同
- 二零二四年度工程款结算与审计合同3篇
- 二零二四年度旅游业务合作与代理合同
- 12千伏环网柜(箱)标准化设计定制方案(2019版)
- 医院装修工程量清单
- 最新四川省教师资格认定体检表.docx
- 永磁电动机使用说明书胜利顺天
- 球形网架结构的吊顶施工做法
- 孟母三迁(课堂PPT)
- 人教版八年级数学上册14.3.2《公式法》第2课时 教 案
- 股东会同意借款决议范本专业版
- 《南州六月荔枝丹》学习要点
- 九年义务教育全日制小学音乐教学器材配备目录
- MSDS(10-100048)聚脂烤漆
评论
0/150
提交评论