




免费预览已结束,剩余32页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第三讲数值数组的创建和赋值,matlab最大的特色可以说是它的矩阵操作了,它提供的相关命令可以很方便的解决与矩阵有关的数据处理,我们在学习的时候就可以体会到它的好处,这是c语言或者excel都无法比拟的.我们将重点学习一维数值数组和二维数值数组的创建访问和操作,并将结合中国大学生数学建模比赛的实例加以练习,避免纸上谈兵。,3.1一维数组的创建和寻访,一、一维数组的创建1.一维数组的创建(1)逐个元素输入法向量的元素用中括号括起来,如果是行向量,则元素之间用逗号或者是空格隔开;如果是列向量,则元素之间用分号隔开(分号表示换行)。,例如:x=(1,2,3,4,5,6,7,8)x=12345678;%一维1x8数组或x=1,2,3,4,5,6,7,8;%一维1x8数组,size(x)%查询x的大小ans=18,注意:size这个命令很有用,用于查询向量或者是矩阵的维数,size(x)返回的是一个一行两列的数组,数组的第一个元素表示x的行数,第二个元素表示x的列数,知道了size的用法,同学们还可以借助于帮助helpsize进一步熟悉它的用法。,例如:x=(1,2,3,4,5,6,7,8)Tx=1;2;3;4;5;6;7;8;%一维8x1数组size(x)%查询x的大小ans=81,(2)冒号生成法这是通过“步长”设定,生成一维“行”数组的方法,通用的格式:x=a:c:ba是数组的第一个元素,c是间隔,若(b-a)是c的整数倍,则所生成数组的最后一个元素等于b,否则小于b,例:产生以起始值=1,增量值=2,终止值=13的数组x=1:2:13x=135791113,x=1:2:12x=1357911,如果间隔为1,则可以缺省例如:x=1:10 x=12345678910,(3)利用linspace(起始值,终止值,元素数目)x=linspace(0,10,6);%利用linspace,以起始值=0,终止值=10之间,元素数目=6,x=0246810,二、一维数组的子数组寻访和赋值,例:x=8:-1:1x=87654321,x(2)%访问x的第二个元素ans=7,x(245)%取x的第二、四、五个元素组成一个新的数组ans=754,x(1:5)%x的第前五个元素ans=87654,注意:MATLAB中,访问向量x的第一个元素是x(1),并且用的是圆括号(),注意与C语言中的区别,不要混淆,x(7:end)%x的第七个元素后的元素ans=21,x(8:-1:5)%x的第8个元素和第5个元素的倒排ans=1234,y=find(x5)%x中大于5的元素的位置y=123,x(find(x5)%大家猜猜返回的是什么,ans=876返回的是x中大与5的元素(按照它们在x中的顺序),x(3)=%删除第三个元素x=871004321,x(8)=-1.1%加入第八个元素x=871004321-1.1,x(4)=100%给x的第四个元素重新给值100 x=8761004321,三、一维数组的操作,min(x)%求x最小的元素ans=-1.1,m,n=min(x)%min可以有两个返回值,大家看看m,n各表示什么m=-1.1n=8,注意:m表示x中最小的元素,n表示这个元素在x中的位置,max(x)%求x最大的元素ans=100,m,n=max(x)%max可以有两个返回值,与min类似m=100n=3,注意:m表示x中最大的元素,n表示这个元素在x中的位置,m=-1.10001.00002.00003.00004.00007.00008.0000100.0000n=87654213,m,n=sort(x)%sort可以有两个返回值,大家看看m,n各表示什么,注意:对比一下,x=(8,7,100,4,3,2,1,-1.1),m表示把x中的元素按从小到大的顺序排序得到的新的向量,n表示这个新的向量中的元素原来在x中的位置,sort(x)%对x的元素按从小到大的顺序排序ans=-1.1125678100,m=-1.10001.00002.00003.00004.00007.00008.0000100.0000n=87654213,m,n=sort(x)%sort可以有两个返回值,大家看看m,n各表示什么,sort(x)%对x的元素按从小到大的顺序排序ans=-1.1125678100,思考:把x中的元素按从大到小的顺序排序怎么办,而且还想知道n新的向量中的元素原来在x中的位置,解决:把n中的元素倒排n=n(end:-1:1);%把x中的元素按从大到小的顺序排序之后个元素原来的位置m=x(n);%把x中的元素按从大到小的顺序排序得到的新向量,mean(x)%求x元素的平均值ans=15.4875,sum(x)%求x元素的总和ans=123.9000,abs(x)%对x的元素取绝对值,得到一个新的向量ans=8.00007.0000100.00004.00003.00002.00001.00001.1000,3.2二维数组(矩阵)的创建和寻访,一、二维数组(矩阵)的创建二维数组输入必须有以下三个要素:1.整个输入必须以方括号“”把所有元素括起来2.二维数组的行与行之间必须用分号“;”或回车键【Enter】隔离3.二维数组元素必须由逗号“,”或空格分隔,【例】输入矩阵,(1)在键盘上输入下列内容:(以;区隔各列的元素)A=1,2,3;4,5,6;7,8,9(2)按【Enter】键,指令被执行。(3)在指令执行后,MATLAB指令窗中将显示以下结果:A=123456789,或者A=1,2,34,5,67,8,9(以下是显示结果)A=123456789,二、二维数组的寻访和赋值,1.访问格式:A(r,c)%输出A的第r行第c列的元素例:A(2,1)%输出A的第2行第1列的元素ans=4,赋值格式:A(r,c)=s%给A的第r行第c列的元素赋值s例:A(2,1)=0%给A的第2行第1列的元素赋值0A=123056789,2.访问格式:A(r,:)%输出A的第r行的所有元素例:A(2,:)%输出A的第2行所有元素ans=056,赋值格式:A(r,:)=S%给A的第r行的所有元素赋值S注意:A的第r行的元素个数必须与S的元素个数相同例:A(2,:)=8:10%给A的第2行所有元素赋值8910A=1238910789,3.访问格式:A(:,c)%输出A的第c列所有元素例:A(:,1)%输出A第1列所有元素ans=187,赋值格式:A(:,c)=S%给A的第c列所有元素赋值S注意:A的第c列的元素个数必须与Sa的元素个数相同例:A(:,1)=-1;-2;-3%给A的第1列所有元素赋值-1;-2;-3A=-123-2910-389,4.访问格式:A(:)%由A的各列按自左到右的次序,首尾相接而成的“一维”长列数组ans=-1-2-32983109,赋值格式:A(:)=D%D必须是一个一维的数组,并且元素个数与A相同例:A(:)=-9:-1A=-9-6-3-8-5-2-7-4-1,思考:把A的1、3行组成一个新矩阵B,命令:B=A(13,:)把A的各行改变顺序,按照3、2、1行得到一个新的矩阵命令:A=A(end:-1:1,:)删除A的第1、2行,命令:A(12,:)=注意:对于列的操作是一样的道理,下面看一个实例:附件2数据1300多名病人按照4种疗法服药大约每隔8周测试的CD4浓度。第1列是病人编号,第2列是4种疗法的代码:第3列是病人年龄,第4列是测试CD4的时刻(周),第5列是测得的CD4,取值log(CD4+1).题目是通过这些数据得出不同年龄段的人应用不同疗法的疗效。那么首先应该处理这些数据,现阶段我们主要练习用matlab处理数据。,1.导入数据,首先我们应该把这些数据构成的一个大的矩阵导入matlab,方法有二:(1)把文本文档(.txt文件)中的矩阵导入matlab的workspace(注意,文本文档中只能是一个矩阵的形式,不能含有其他的文字符号)首先把文档所在处设为当前的路径,以便matlab能够找到,最好给这个文本重命名,最好是英文名,比如说我们把“附件2.txt”,命名为data.txt,设置好路径,在commandwindow中输入loaddata.txt回车之后就会发现在workspace中出现了一个变量:data这就完成了文本文档中矩阵的导入注意:格式是load+空格+单引号+文档名.txt+单引号,(2)FileImportData,出现以下窗口,选择好文件“打开”就可以了,选择“Next”,选择“Finish”,workspace中就出现了data这个变量,(2)操作练习,导入数据以后,我们做一些矩阵操作的练习1)把所有使用第一种疗法的病人的数据找出来,生成的新矩阵命名为program1,并查看这个矩阵的大小,把program1里cd4浓度出现了0的所在行删除。命令:place1=find(data(:,2)=1);%找出data中第二列的等于1的元素所在位置program1=data(place1,:);%把data中第二列的等于1的元素所在行提取出来组成一个新的矩阵%program1program1_size=size(program1);%查询program1的大小zeroplace=find(program1(:,5)=0);%找出program1第五列中等于0的元素的位置program1(zeroplace,:)=;%把program1第五列中等于0的元素所在行删除,2)把program1里的病人数据按年龄从大到小的顺序排列命令:m,n=sort(program1(:,3);%把program1的第三列的元素按从小到大的顺序排列,n返回的是%排列之后各元素原来的位置program1=program1(n,:);%把program1各行的顺序改变了,按照第三列的序改变的%目前的序是从小到大,要求是从大到小,所以在把各行的顺序变一下program1=program1(end:-1:1,:);%把program1各行的顺序改变了,按照第三列的从大到小的序改%变的,3)找出program1里年龄大于30岁的病人,把这些病人的数据保存到矩阵program1_30中,计算最后一列的平均值,找出最后一列的最大最小值及他们所在的位置这个问题作为作业,保存在exercise3_0.m中,作业:,1.以起始值0,终止值2,产生含有20个等距元素的一维数组x(1)用两种不同的指令实现(2)查询x的大小(3)访问x的第三个元素(4)给x的第四个元素赋值0(5)取x的第一、五、六个元素组成一个新的数组y(6)取x的第前六个元素组成一个新的数组z(7)x的第十个元素后的元素(8)x的第十个元素和第二个元素的倒排(9)x中大于的元素(10)给x的第十个元素重新给值-1(11)删除第二十个元素(12)求x最大的元素,最小元素,求平均值,求和,按从达到小顺序排列x的元素把解决这道题的命令保存在exercise3_1.m
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025-2030中国冷链物流行业数字化转型趋势与投资风险预警报告
- 五星创建工作自查报告【6篇】
- 银行信贷部自营贷款委托管理协议书7篇
- 2023年水利工作总结5篇
- 2025安徽马鞍山市博望区人民医院招聘派遣制人员8人模拟试卷及答案详解(典优)
- 2025年海洋能源战略:海水淡化反渗透膜材料技术创新在海洋能源开发中的应用
- 2025广东中山市沙溪镇人民政府所属事业单位招聘事业单位人员11人模拟试卷含答案详解
- 2025湖南湘潭市韶山思政教育实践中心公开招聘教师2人模拟试卷及答案详解(考点梳理)
- 2025广东社会科学大学招聘事业编制工作人员2人考前自测高频考点模拟试题及一套完整答案详解
- 2025河南新乡市延津县审计局招聘辅助审计人员5人考前自测高频考点模拟试题参考答案详解
- 2025-2030中国汽车结构胶行业市场发展趋势与前景展望战略研究报告
- T/CHC 1005-2023破壁灵芝孢子粉
- 图像几何变换讲解
- 高一上学期《国庆假期安全教育+时间规划》主题班会课件
- 分拣部管理制度
- 2025年铁路货装值班员(高级)职业技能鉴定参考试题库(含答案)
- 2024年单招数学函数的性质专项复习试题和答案
- 星级酒店的各类客房类型介绍
- 2024-2025学年高一下学期《唤醒内驱力-开启自主学习成长之旅》主题班会课件
- 养成良好习惯遇见更好自己-2025年春季学期习惯养成教育主题班会课件
- 事业单位国有资产无偿划转意向协议书(2篇)
评论
0/150
提交评论