欢迎来到天天文库
浏览记录
ID:38697570
大小:36.50 KB
页数:3页
时间:2019-06-17
《实验三元胞和结构定义》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、实验二元胞和结构定义一.实验目的1较熟练地掌握矩阵元素的访问2进一步掌握矩阵中的关系运算的特点及索引地使用,分辨出元胞数组与结构数组之区别,灵活地控制调用结构体数组里元素。二.实验类型设计型三.实验内容:1自行产生一个5行5列的数组,用两种方法得到最中间的三行三行矩阵。2根据a=reshape(-4:4,3,3)做一个矩阵,然后(1)取出所有大于0的元素构成一个向量(可推广到从一个矩阵里筛选出符合条件的元素组成一个向量)(2)将原矩阵中大于0的元素正常显示,而小于等于0的元素全部用0来表示(可推广到将原矩阵中不符合条件的全用0
2、来表示,符合条件的值不变)。3建立如下一个元胞数组,现在要求计算第一个元胞第4行第2列加上第二个元胞+第三个元胞里的第二个元素+最后一个元胞的第二个元素。a={pascal(4),'hello';17.3500,7:2:100}4建立一个结构体的数组,包括3个人,字段有姓名,年龄,分数,其中分数由随机函数产生一个3行10列的数据表示了有10门课程,每门课程有三个阶段的分数。问题是:问题1,如何找到第2个人的分数并显示出来问题2,如何找到第2个人的每门课程3个阶段的平均分数并显示出来问题3,全班同学的10门课程的每门课程的平均分
3、如何计算出来?要求放到一个数组里。问题4,找到这个班所有同学的姓名放到一个元胞数组里5给定一个图像文件,格式是jpg,通过inportdata引入这个文件,查看引入后数据保存是一个数组,是100*100*3的一个数组,这是一个三维的数组,表明有100*100个点,每个点有RGB三个方面决定的。现在,要求将这些点的中间部分30个象素宽度的正方型用黑点表示。7将一个矩阵转化成结构体:有三个一维向量分别表示若干个点(5个点)的RGB值,如R=255*rand(1,5),G=255*rand(1,5),B=255*rand(1,5)。
4、将这三个一维向量组成一个5*3矩阵(5表示5个点,3表示每个点有三个色值)。然后将这个表示若干点色值的矩阵转化成元胞数组,最后将元胞数组转成包含R,G,B三个属性的结构体。四.实验步骤:1.仔细阅读Matlab帮助文件中有关以上函数的使用说明,能充分理解其使用方法并能运用它们完成实验内容。2.先建立一个5*5的矩阵,然后可以通过使用索引访问矩阵元素的多种方法中的访问由指定的向量I,和向量J来指定。本题还可以通过空数组的方式来得到,空数组产生的主要目的就是为了删除空间,我们可以先将这个5*5矩阵的第1,5行设置为空,再将第1,5
5、列设置为空即可。3首先建立一个矩阵,然后用关系运算符找出大于0的索引矩阵,根据这个索引就可以得到满足条件的矩阵了,第二个问题,是需要使用两个数组的点积运算。4.元组数组的设置可以由多种方式,但总体来说,还是一个数组(矩阵,可看作是广义矩阵),元组数组里的元素我们称为元胞,要想访问元胞里的元素,我们必须使用{},而不是(),元素里的部分内容的访问需要用到()。因此,本题先建立元胞数组,再访问元胞元素里的分量,加起来即可。5.结构体数组的建立方法有两种,第一种是通过struct关键字来引导的建立方法,这种方法相当于初始化赋值数据,
6、数据必须被{}包着,很象元胞元素;第二种是直接给某一个结构体赋值,实际上是给它的某个属性赋值,赋值的数据就是一般的数据格式。本题首先建立结构体数组,结构体里有三个字段,可以先建立student(1)的各个字段,然后再建立student(2),依次类推。另外,在建立分数字段的时候用到了rand函数,用这个函数建立3行10列的矩阵,表示10门课程,每门课程有三次成绩。问题1要得到某个人的成绩,需要用()的方式访问数组里某个人,然后再用“.”来操作其成员数据。问题2求每个人的平均分,需要用到mean函数。问题3要得到全班所有人(实际
7、给出3个人),每个人10门平均分,有两种方法:方法一,可以借助问题2的方法先求出第1个人的平均分,再求第2人的平均分,再求第3个人的平均分,然后用[a1;a2;a3]将平均分组合起来变成一个平均分矩阵,最后再求一次平均分即得到结果。方法二,就应该预先建立一个3*10的矩阵meanss,这个矩阵预先都放0,注意矩阵的赋值方式:meanss(3,10)=0。然后,用循环的方式将求出来的第i个人的平均分交给矩阵meanss相应的第i行。问题4,要将姓名放在一个矩阵里,有两种方法。第一种方法可以使用strvcat这个函数来将不同长度的
8、字符串接合在一起,如names=strvcat(names,student(1).name)就接合了第一个人的姓名,用这种方法可以接合多个字符串,如果编程解决的话,只要使用循环即可完成任务。第二种方法,保存不同长度字符串使用元胞数组是非常方便的,因为不同的元胞元素结构、长度等
此文档下载收益归作者所有