matlab结构体学习
matlab结构体学习
matlab结构体与C语言数据结构结构体或java语言类的定义有异曲同工之妙,其主要知识点如下
提示:写完文章后,目录可以自动生成,如何生成可参考右边的帮助文档
文章目录
- matlab结构体学习
- 前言
- 一、matlab结构体创建方式
- 1.直接插入法
- 2.struct函数
- 二、struct部分函数
- cat函数代码如下:
- 2、平均值mean函数
- 实验
前言
提示:这里可以添加本文要记录的大概内容:
例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容。
提示:以下是本篇文章正文内容,下面案例可供参考
一、matlab结构体创建方式
其主要由两种创建方式
1.直接插入法
直接在matlab命令行窗口输入代码,例如下:
>>clear student //清除 student 变量
>>student.name = '张三'; // 加入 name 字段
>>student.id = 'mr871912'; //加入 id字段
>>student.scores = [58, 75, 62]; // 加入 scores字段
>>student // 显示结构变量的数据
student =
name: '张三'
id: 'mr871912'
scores: [58,75,62]
// 第二个学生的信息建立
>>student(2).name = '张宁'; // 加入 name 字段
>>student(2).id = 'mr871913'; // 加入 id字段
>>student(2).scores=[68, 85, 92]; //加入 scores字段
>>student // 显示变量信息
student =
1x2 struct array with fields:
name
id
scores
当创建第二个student结构体后,student变量已成为一个1x2的结构数组;
只是简单输入变量名student的话,Matlab不再显示其所有的数据信息,只是给出结构
2.struct函数
利用struct函数进行创作
格式:Structure Array_var_name = struct(field1, value1, field2, value2,….)
>>clear student
>>student=struct('name', '张三', 'scores', [60 65]);
>> student(2)=struct('name', '李四', 'scores', [65 70]);
//或者用student = struct('name', {'张听说', '张廷安'}, 'scores', {[50 60], [60 70]});
>> student(1), student(2) //显示student(1),student(2)
ans =
name: '张三'
scores: [60 65]
ans =
name: '李四'
scores: [65 70]
结构数组中的字段也可以是结构体
student = struct(‘name’, {‘张三’, ‘李四’}, ‘scores’, {[60 65], [65 70]});
student(2).course(1).title = ‘matlab’;
student(2).course(1).credits = 4;
student(2).course(2).title = ‘programming system’;
student(2).course(2).credits = 3;
二、struct部分函数
cat函数代码如下:
>>cat(1, student.scores)
ans =
60 65
65 70
>>cat(2, student.scores)
ans =
60 65 65 70
dim=1, 竖排;dim=2, 横排
2、平均值mean函数
average1=mean(cat(1, student.scores))
average1 =
62.5000 67.5000
按列取平均
实验
创建一个结构体,用于统计学生的情况,包括学生的姓名、学号、各科成绩等。然后使用该结构体对一个班级的学生成绩进行管理,如计算总分、平均分、排列名次等。
Sum_S=input("请输入你班级的人数");
Sum_C=input("请输入你班级的学科数量");
for i=1:Sum_S
student(i).name=input("请输入这个学生的名字");
student(i).id=input("请输入这个学生的学号");
student(i).sum_score=0;
for j=1:Sum_C
student(i).course(j).score=input("请输入该学生的该课程的成绩");
student(i).sum_score= student(i).sum_score+student(i).course(j).score;
end
student(i).mean_score= student(i).sum_score/Sum_C;
end
[student_P,index]=sort([student.sum_score], 'descend');
最后我们用sort函数进行排序,结果如下: