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函数进行排序,结果如下:

Python中如何使用MATLAB中的结构体变量_字段

Python中如何使用MATLAB中的结构体变量_直接插入_02