结构体变量、单元型变量和结构体数组的使用方法
2017-03-02 22:50
507 查看
%{
《结构体变量、单元型变量和结构体数组的使用方法》
问题描述:(MatlabR2015a代码,可直接复制)
某专业有三名研究生,本学期选修了四门课程,若这些研究生的姓名,学号,性别,出生年月,课程名称,考试成绩可任意假定,
(1)分别用结构型变量和单元型变量表示以上信息;
(2)举例说明查阅以上任何一条信息的方法;
(3)求每一个研究生的平均成绩.
%}
%%法一:单元型变量表示,用结构体,因为结构体可以使得不同的数据类型的数据放在一个矩阵中;
%错误:第一行是姓名,学号,性别,出生年月 第二行是具体回答 第三行是课程名字 第四行是相应课程的分数(当然也可以列的方式进行)
Student1=struct('Name',{'韩承熙'},'ID',{'0107140112'},'Gender',{'男'},'Birthday',{'1995-03-22'},...
'InSAR',70,'Matlab',50,'Microwave',80,'GIS',90);
%%%结构体必须用(),不能用[]!!!!! 好像不可以用;隔开做成2行???
Student2=struct('Name',{'韩熙熙'},'ID',{'0107140111'},'Gender',{'男'},'Birthday',{'1995-03-21'},...
'InSAR',50,'Matlab',80,'Microwave',90,'GIS',70);
Student3=struct('Name',{'韩熙枭雄'},'ID',{'0107140113'},'Gender',{'男'},'Birthday',{'1995-03-23'},...
'InSAR',80,'Matlab',90,'Microwave',70,'GIS',50);
Student=[Student1 Student2 Student3]
%**************调用方式********************%
Student %查看学生有哪些信息
Student(1) %查看学生1的所有信息
Student(1).Name %查看学生1的姓名
Student(1).Matlab %查看学生1的Matlab课程的成绩信息
%**************调用方式********************%
%%%求成绩的平均值
MeanCouSco1=sum(Student(1).InSAR+Student(1).Matlab+Student(1).Microwave+Student(1).GIS )/4
MeanCouSco2=sum(Student(2).InSAR+Student(2).Matlab+Student(2).Microwave+Student(2).GIS )/4
MeanCouSco3=sum(Student(3).InSAR+Student(3).Matlab+Student(3).Microwave+Student(3).GIS )/4
%###############思维拓展,可以把单独把课程和成绩用结构型变量做成一快,然后再放进上述结构体中##########
%%%法二:使用结构型变量表示%%%
Student1.Name='韩承熙';
Student1.ID='0107140112';
Student1.Gender='男';
Student1.Birthday='1995-03-22';
% Student1.Course=['InSAR ','Matlab ','Microwave ','GIS'];
%此处将所有课程看作一个大的连续的字符串!!!Student(1).Course(1)是I Student(1).Course(6)是空!!!###
Student1.Course=[{'InSAR'},{'Matlab'},{'Microwave'},{'GIS'}];
%此处每个科目用大括号单独括起来,即看作cell元胞数组型的,每一个可以单独表示Student(1).Course(1)是'InSAR '###
%实现的结果与下面用结构数组的形式一样,都可以把'InSAR'看作一个单独的量!!!!!!
Student1.Score=[70,50,80,90];
% Student1={Name,ID,Gender,Birthday,Course,Score};%结构型变量自动将他们合在一起,不用重新合一起##
Student2.Name='韩熙熙';
Student2.ID='0107140111';
Student2.Gender='男';
Student2.Birthday='1995-03-21';
Student2.Course=[{'InSAR'},{'Matlab'},{'Microwave'},{'GIS'}];
Student2.Score=[50,80,90,70];
% Student2={Name,ID,Gender,Birthday,Course,Score};
Student3.Name='韩熙枭雄';
Student3.ID='0107140114';
Student3.Gender='男';
Student3.Birthday='1995-03-23';
Student3.Course=[{'InSAR'},{'Matlab'},{'Microwave'},{'GIS'}];
Student3.Score=[80,90,70,50];
% Student3={Name,ID,Gender,Birthday,Course,Score};
Student=[Student1 Student2 Student3]
%**************调用方式********************%
Student %查看所有学生信息
Student(1) %查看学生1的信息
Student(1).Course %查看学生1的课程(注意 单独的 和 字符串 的区别!)
Student(1).Course(2) %查看学生1的第二门课程是Matlab
Student(1).Score %查看学生1的所有课程的成绩信息
Student(1).Score(2) %查看学生1的Matlab课程的成绩信息
%**************调用方式********************%
%%%求成绩的平均值
MeanCouSco1=mean(Student(1).Score)
MeanCouSco2=mean(Student(2).Score)
MeanCouSco3=mean(Student(3).Score)
%%%法二
MeanCouSco1=sum(Student(1).Score(1)+Student(1).Score(2)+Student(1).Score(3)+Student(1).Score(4))/4
MeanCouSco2=sum(Student(2).Score(1)+Student(2).Score(2)+Student(2).Score(3)+Student(2).Score(4))/4
MeanCouSco3=sum(Student(3).Score(1)+Student(3).Score(2)+Student(3).Score(3)+Student(3).Score(4))/4
% %%%法三:struct array用结构数组的方法%%%
% Student1.Name='韩承熙';
% Student1.ID='0107140112';
% Student1.Gender='男';
% Student1.Birthday='1995-03-22';
% Student1.CouSco=struct('InSAR',70,'Matlab',50,'Microwave',80,'GIS',90);
%%注意:第1,3,5为项,2,4,6为值,值为非数字时赋值要用{}!!!!!!
% % CouSco=struct('InSAR',70,'Matlab',50,'Microwave',80,'GIS',90);
% % Student11=[Student1 CouSco];
%
% Student2.Name='韩熙熙';
% Student2.ID='0107140111';
% Student2.Gender='男';
% Student2.Birthday='1995-03-21';
% Student2.CouSco=struct('InSAR',50,'Matlab',80,'Microwave',90,'GIS',70);
% % CouSco=struct('InSAR',50,'Matlab',80,'Microwave',90,'GIS',70); 问题:%结构数组和结构型变量可以放在一个矩阵里么?
% % Student22=[Student2 CouSco];
%
% Student3.Name='韩熙枭雄';
% Student3.ID='0107140114';
% Student3.Gender='男';
% Student3.Birthday='1995-03-23';
% Student3.CouSco=struct('InSAR',80,'Matlab',90,'Microwave',70,'GIS',50);
% % CouSco=struct('InSAR',80,'Matlab',90,'Microwave',70,'GIS',50);
% % Student33=[Student3 CouSco];
% % Student=[Student11 Student22 Student33];
% Student=[Student1 Student2 Student3];
%
% %**************调用方式********************%
% Student %查看所有学生信息
% Student(1) %查看学生1的信息
% Student(1).CouSco %查看学生1的课程和成绩信息
% Student(1).CouSco.InSAR %查看学生1的InSAR课程的成绩信息
% %**************调用方式********************%
% %%%求成绩的平均值
% MeanCouSco1=sum( Student(1).CouSco.InSAR+Student(1).CouSco.Matlab+Student(1).CouSco.Microwave+Student(1).CouSco.GIS)/4;
% MeanCouSco2=sum( Student(2).CouSco.InSAR+Student(2).CouSco.Matlab+Student(2).CouSco.Microwave+Student(2).CouSco.GIS)/4;
% MeanCouSco3=sum( Student(3).CouSco.InSAR+Student(3).CouSco.Matlab+Student(3).CouSco.Microwave+Student(3).CouSco.GIS)/4;
%%韩熙枭雄 2017.3.2于长沙
%%如有疑问可以发邮件给我1121399040@qq.com
《结构体变量、单元型变量和结构体数组的使用方法》
问题描述:(MatlabR2015a代码,可直接复制)
某专业有三名研究生,本学期选修了四门课程,若这些研究生的姓名,学号,性别,出生年月,课程名称,考试成绩可任意假定,
(1)分别用结构型变量和单元型变量表示以上信息;
(2)举例说明查阅以上任何一条信息的方法;
(3)求每一个研究生的平均成绩.
%}
%%法一:单元型变量表示,用结构体,因为结构体可以使得不同的数据类型的数据放在一个矩阵中;
%错误:第一行是姓名,学号,性别,出生年月 第二行是具体回答 第三行是课程名字 第四行是相应课程的分数(当然也可以列的方式进行)
Student1=struct('Name',{'韩承熙'},'ID',{'0107140112'},'Gender',{'男'},'Birthday',{'1995-03-22'},...
'InSAR',70,'Matlab',50,'Microwave',80,'GIS',90);
%%%结构体必须用(),不能用[]!!!!! 好像不可以用;隔开做成2行???
Student2=struct('Name',{'韩熙熙'},'ID',{'0107140111'},'Gender',{'男'},'Birthday',{'1995-03-21'},...
'InSAR',50,'Matlab',80,'Microwave',90,'GIS',70);
Student3=struct('Name',{'韩熙枭雄'},'ID',{'0107140113'},'Gender',{'男'},'Birthday',{'1995-03-23'},...
'InSAR',80,'Matlab',90,'Microwave',70,'GIS',50);
Student=[Student1 Student2 Student3]
%**************调用方式********************%
Student %查看学生有哪些信息
Student(1) %查看学生1的所有信息
Student(1).Name %查看学生1的姓名
Student(1).Matlab %查看学生1的Matlab课程的成绩信息
%**************调用方式********************%
%%%求成绩的平均值
MeanCouSco1=sum(Student(1).InSAR+Student(1).Matlab+Student(1).Microwave+Student(1).GIS )/4
MeanCouSco2=sum(Student(2).InSAR+Student(2).Matlab+Student(2).Microwave+Student(2).GIS )/4
MeanCouSco3=sum(Student(3).InSAR+Student(3).Matlab+Student(3).Microwave+Student(3).GIS )/4
%###############思维拓展,可以把单独把课程和成绩用结构型变量做成一快,然后再放进上述结构体中##########
%%%法二:使用结构型变量表示%%%
Student1.Name='韩承熙';
Student1.ID='0107140112';
Student1.Gender='男';
Student1.Birthday='1995-03-22';
% Student1.Course=['InSAR ','Matlab ','Microwave ','GIS'];
%此处将所有课程看作一个大的连续的字符串!!!Student(1).Course(1)是I Student(1).Course(6)是空!!!###
Student1.Course=[{'InSAR'},{'Matlab'},{'Microwave'},{'GIS'}];
%此处每个科目用大括号单独括起来,即看作cell元胞数组型的,每一个可以单独表示Student(1).Course(1)是'InSAR '###
%实现的结果与下面用结构数组的形式一样,都可以把'InSAR'看作一个单独的量!!!!!!
Student1.Score=[70,50,80,90];
% Student1={Name,ID,Gender,Birthday,Course,Score};%结构型变量自动将他们合在一起,不用重新合一起##
Student2.Name='韩熙熙';
Student2.ID='0107140111';
Student2.Gender='男';
Student2.Birthday='1995-03-21';
Student2.Course=[{'InSAR'},{'Matlab'},{'Microwave'},{'GIS'}];
Student2.Score=[50,80,90,70];
% Student2={Name,ID,Gender,Birthday,Course,Score};
Student3.Name='韩熙枭雄';
Student3.ID='0107140114';
Student3.Gender='男';
Student3.Birthday='1995-03-23';
Student3.Course=[{'InSAR'},{'Matlab'},{'Microwave'},{'GIS'}];
Student3.Score=[80,90,70,50];
% Student3={Name,ID,Gender,Birthday,Course,Score};
Student=[Student1 Student2 Student3]
%**************调用方式********************%
Student %查看所有学生信息
Student(1) %查看学生1的信息
Student(1).Course %查看学生1的课程(注意 单独的 和 字符串 的区别!)
Student(1).Course(2) %查看学生1的第二门课程是Matlab
Student(1).Score %查看学生1的所有课程的成绩信息
Student(1).Score(2) %查看学生1的Matlab课程的成绩信息
%**************调用方式********************%
%%%求成绩的平均值
MeanCouSco1=mean(Student(1).Score)
MeanCouSco2=mean(Student(2).Score)
MeanCouSco3=mean(Student(3).Score)
%%%法二
MeanCouSco1=sum(Student(1).Score(1)+Student(1).Score(2)+Student(1).Score(3)+Student(1).Score(4))/4
MeanCouSco2=sum(Student(2).Score(1)+Student(2).Score(2)+Student(2).Score(3)+Student(2).Score(4))/4
MeanCouSco3=sum(Student(3).Score(1)+Student(3).Score(2)+Student(3).Score(3)+Student(3).Score(4))/4
% %%%法三:struct array用结构数组的方法%%%
% Student1.Name='韩承熙';
% Student1.ID='0107140112';
% Student1.Gender='男';
% Student1.Birthday='1995-03-22';
% Student1.CouSco=struct('InSAR',70,'Matlab',50,'Microwave',80,'GIS',90);
%%注意:第1,3,5为项,2,4,6为值,值为非数字时赋值要用{}!!!!!!
% % CouSco=struct('InSAR',70,'Matlab',50,'Microwave',80,'GIS',90);
% % Student11=[Student1 CouSco];
%
% Student2.Name='韩熙熙';
% Student2.ID='0107140111';
% Student2.Gender='男';
% Student2.Birthday='1995-03-21';
% Student2.CouSco=struct('InSAR',50,'Matlab',80,'Microwave',90,'GIS',70);
% % CouSco=struct('InSAR',50,'Matlab',80,'Microwave',90,'GIS',70); 问题:%结构数组和结构型变量可以放在一个矩阵里么?
% % Student22=[Student2 CouSco];
%
% Student3.Name='韩熙枭雄';
% Student3.ID='0107140114';
% Student3.Gender='男';
% Student3.Birthday='1995-03-23';
% Student3.CouSco=struct('InSAR',80,'Matlab',90,'Microwave',70,'GIS',50);
% % CouSco=struct('InSAR',80,'Matlab',90,'Microwave',70,'GIS',50);
% % Student33=[Student3 CouSco];
% % Student=[Student11 Student22 Student33];
% Student=[Student1 Student2 Student3];
%
% %**************调用方式********************%
% Student %查看所有学生信息
% Student(1) %查看学生1的信息
% Student(1).CouSco %查看学生1的课程和成绩信息
% Student(1).CouSco.InSAR %查看学生1的InSAR课程的成绩信息
% %**************调用方式********************%
% %%%求成绩的平均值
% MeanCouSco1=sum( Student(1).CouSco.InSAR+Student(1).CouSco.Matlab+Student(1).CouSco.Microwave+Student(1).CouSco.GIS)/4;
% MeanCouSco2=sum( Student(2).CouSco.InSAR+Student(2).CouSco.Matlab+Student(2).CouSco.Microwave+Student(2).CouSco.GIS)/4;
% MeanCouSco3=sum( Student(3).CouSco.InSAR+Student(3).CouSco.Matlab+Student(3).CouSco.Microwave+Student(3).CouSco.GIS)/4;
%%韩熙枭雄 2017.3.2于长沙
%%如有疑问可以发邮件给我1121399040@qq.com
相关文章推荐
- php使用post数组的键值创建同名变量并赋值的方法
- 【逆向工具】IDA使用3-全局变量、数组、结构体
- oracle函数、包、变量的定义和使用、重点”结构体和数组”
- 【原创】PB调用SAP的Web Service结构体数组参数方法详解(使用C#调用Web Service生成dll)
- 使用数组的键值,做为变量名的方法
- PB调用SAP的Web Service结构体数组参数方法详解(使用C#调用Web Service生成dll)
- 结构体数组使用方法
- 结构体变量与结构体指针变量的使用方法
- 使用vector建立结构体变量的数组,动态进行增加删除和显示
- java学习笔记(四)----对象、数组作为参数传递,静态变量、静态方法的使用,内部类,使用文档注释
- 从指针的使用角度看数组与结构体
- 页面间传递变量的方法及使用范围的讨论
- javascript数组使用调用方法汇总
- [ASP]使用RecordSet对象的GetRows方法(返回而为数组)和RS.MaxRecords(指定记录集的最大容量)
- 页面间传递变量的方法及使用范围的讨论
- javascript的数组使用方法
- 使用不同方法输出一维整型数组a的各元素
- 页面间传递变量的方法及使用范围的讨论
- 使用Array的Sort()方法对数组进行排序
- 页面间传递变量的方法及使用范围的讨论