Simulink从0搭建模型06-P7模型中结构体的使用

news2024/11/15 22:57:42

Simulink从0搭建模型06-P7模型中结构体的使用

  • 本节课学习内容
  • 1. 结构体的创建 Bus Creator(多输入单输出)
  • 2. 结构体的引用 Bus Selector(单输入多输出)
  • 3. 结构体的赋值 Bus Assignment
  • 4. 结构体对象的创建 Bus object
  • 5. 结构体数组的创建 Vector Concatenate(多输入单输出)
  • 6. 结构体数组的保存

本节课学习内容

b站视频【Simulink 0基础入门教程 P7 模型中结构体的使用 Bus Creator/Selector/Assignment】

在这里插入图片描述


1. 结构体的创建 Bus Creator(多输入单输出)

在这里插入图片描述

对比数组和结构体的模块,看起来很像,区别在于数组模块的输入必须为相同的数据类型,而结构体的数据类型可以不同。如下图为结构体的创建:

​ 输入一个学生结构体的4个信号:

  1. id
  2. mathScore
  3. EnglishScore
  4. ChineseScore

在这里插入图片描述

双击Bus Creator模块,可以看到线上默认的名字为signal1~signal4:

如何修改名字呢?用鼠标双击该线更改名称:

在这里插入图片描述

再次双击Bus Creator模块,发现线上名称已经更改了:

2. 结构体的引用 Bus Selector(单输入多输出)

我们输入有4个不同类型的数据,如果直接用一个Display显示结果会报错。

​ 验证:

在这里插入图片描述

报错原因:Display的输入口不能接收混合数据类型。

也就是说,一个Display不能显示不同的数据类型,那好办,我们就用多个Display显示。但是Bus Creator只有一个输出,怎么办?

所以就用到了Bus Selector模块(单输入多输出),来选择输出信号:

在这里插入图片描述

用Select把左边的信号添加到右边:

在这里插入图片描述

再比如:

在这里插入图片描述

3. 结构体的赋值 Bus Assignment

现在想要修改学生的信息。

  1. 添加Bus Assignment模块:

在这里插入图片描述

  1. 修改参数mathScore=100:

在这里插入图片描述

在这里插入图片描述

eg2:
在这里插入图片描述

4. 结构体对象的创建 Bus object

把一个学生的信息(id、mathScore、EnglishScore、ChineseScore)放在一个结构体对象里面。

为啥这么做?

双击打开Bus Selector模块,选择结构体对象输出类型:

先修改名称后再点Edit进入工作界面:

添加一个结构体对象,右侧更名为"StudentInfo"(点工具栏的+,Add Bus):

在这里插入图片描述

在结构体对象下面加成员:

在这里插入图片描述

最后创建的结构体对象如下:

在这里插入图片描述

关闭退出。

再更新一下"Refresh data types",同时记得勾选上Output as nonvirtual bus(作为非虚拟总线输出):

在这里插入图片描述

结构体对象创建效果图:

在Bus Creator模块的输出线上显示了对象名称为StudentInfo。

在这里插入图片描述

遇到bug:

​ 我创建好了名为MyInfo的结构体对象,运行报错:

在这里插入图片描述

​ 查找问题发现,在结构树下我所创建的输入顺序错了,导致上面的数据类型不匹配:

在这里插入图片描述

​ 调整顺序:

在这里插入图片描述

再次运行就不报错了:

在这里插入图片描述

5. 结构体数组的创建 Vector Concatenate(多输入单输出)

还记得前面我问的为啥要创建结构体对象了吧,在这里我们就明白了创建结构体对象的作用了,多个结构体对象可以构成一个结构体数组,方便我们管理学生信息。

创建5个学生的结构体(复制粘贴),然后用一个Vector Concatenate模块打包成一个5维结构体数组。

在这里插入图片描述

接下来,我们想要查看学生X的信息,也就是说先选择哪个学生,再选择该学生的信息。

  1. 用Selector模块选择是哪个学生:

在这里插入图片描述

  1. 用bus selector模块显示该学生的信息:

在这里插入图片描述

eg2:

在这里插入图片描述

6. 结构体数组的保存

最后,我们好不容易创建了一个结构体数组,把它保存一下,直接可以调用的。

在这里插入图片描述

在这里插入图片描述

存为.mat文件格式,自命名。

在这里插入图片描述

回到matlab打开的界面,就可以载入我们保存好的模型了。

在这里插入图片描述

-END-

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1713021.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

vue3 vant4实现抖音短视频功能

文章目录 1. 实现效果2. 精简版核心代码3. 完整功能点&#xff08;本文章不写&#xff0c;只写核心代码&#xff09; 1. 实现效果 2. 精简版核心代码 使用的 vue3 vant4组件使用van-swipe进行轮播图切换实现 <template><div :style"{width: width px,overflo…

Spark中的累加器与广播变量及blockmanager图解

一、累加器 1、累加器的引入 案例&#xff1a;没读取一条文件中的数据&#xff0c;count1&#xff0c;并打印在Drive端&#xff08;控制台&#xff09; import org.apache.spark.{SparkConf, SparkContext} import org.apache.spark.rdd.RDDobject Demo20Accumulator {def ma…

做电商,错过了2020年的抖音!那2024一定要选择视频号小店!

哈喽~我是电商月月 电商老板们集合了&#xff0c;问大家一个问题: 如果能让你回到三四年前&#xff0c;抖音才步入大众视野&#xff0c;这时候让你去做抖音小店&#xff0c;你愿意吗&#xff1f; 我敢相信&#xff01;很多&#xff0c;错过当年抖音红利的商家&#xff0c;一…

【每日力扣】300. 最长递增子序列 与 139. 单词拆分

&#x1f525; 个人主页: 黑洞晓威 &#x1f600;你不必等到非常厉害&#xff0c;才敢开始&#xff0c;你需要开始&#xff0c;才会变的非常厉害 300. 最长递增子序列 给你一个整数数组 nums &#xff0c;找到其中最长严格递增子序列的长度。 子序列 是由数组派生而来的序列&…

【计算机网络】P1 计算机网络概念、组成、功能、分类、标准化工作以及性能评估指标

目录 1 什么是计算机网络2 计算机网络的组成2.1 组成部分上2.2 工作方式上2.3 功能组成上 3 计算机网络的功能3.1 数据通信3.2 资源共享3.3 分布式处理3.4 提高可靠性3.5 负载均衡 4 计算机网络的分类4.1 按分布范围分类4.2 按传输技术分类4.3 按照拓扑结构分类4.4 按使用者分类…

网络智能化的发展对仿真环境的需求

1. 网络智能化背景介绍 1.1 什么是网络智能化 网络智能化是指利用人工智能&#xff08;AI&#xff09;、机器学习&#xff08;ML&#xff09;、优化算法等技术来实现网络的信息化、自动化和智能化。相对5G、6G、算力网络等领域&#xff0c;网络智能化是针对网络全场景、全要素…

低调收藏,这份MobaXterm使用指南很全面

中午好&#xff0c;我的网工朋友。 MobaXterm&#xff0c;这个名字对于我们这些经常需要在Windows环境下与Linux服务器打交道的人来说&#xff0c;应该并不陌生。它不仅仅是一个SSH客户端&#xff0c;更是一个功能强大的终端工具箱&#xff0c;集成了X服务器和Unix命令集&…

HiWoo Box工业4G网关

在飞速发展的工业4.0时代&#xff0c;数据已成为驱动工厂智能化、自动化的核心力量。而如何将这些散布在工厂各个角落的数据高效、安全地汇集起来&#xff0c;成为企业提升生产效率、降低运营成本的关键。今天&#xff0c;我们将为您介绍一款4G网关产品——HiWoo Box&#xff0…

【嵌入式模块芯片开发】DWIN的T5L _DGUS应用开发 显示屏的基本图形显示以及串口命令的动态数据波形功能实现

【嵌入式模块芯片开发】DWIN的T5L _DGUS应用开发 显示屏的基本图形显示以及串口命令的动态数据波形功能实现 T5L _DGUS应用在DWIN的各类显示屏中 如DMG80480T070_05WTR等等 可用DWIN官方工具生成一系列上位机显示控件 通过串口命令进行交互实现显示、触摸等功能 也可以进行C51…

【上】王树森《小红书推荐系统公开课》- 课程笔记(推荐系统基础、召回、排序)

写在前面 本文为王树森老师《小红书推荐系统公开课》的课程笔记 课程来源&#xff1a;ShusenWang的个人空间-ShusenWang个人主页-哔哩哔哩视频 (bilibili.com)课程资料&#xff1a;GitHub - wangshusen/RecommenderSystem 由于篇幅较长&#xff0c;分为【上】【下】两篇文章…

HTML静态网页成品作业(HTML+CSS)——动漫海贼王介绍网页(1个页面)

&#x1f389;不定期分享源码&#xff0c;关注不丢失哦 文章目录 一、作品介绍二、作品演示三、代码目录四、网站代码HTML部分代码 五、源码获取 一、作品介绍 &#x1f3f7;️本套采用HTMLCSS&#xff0c;未使用Javacsript代码&#xff0c;共有1个页面。 二、作品演示 三、代…

VSCode 报错 之 运行 js 文件报错 ReferenceError: document is not defined

1. 背景 持续学习ing 2. 遇到的问题 在VSCode 右键 code runner js 文件报错 ReferenceError: document is not defined eg&#xff1a; // 为每个按钮添加点击事件监听器 document.querySelectorAll(button).forEach(function (button) {button.addEventListener(click, f…

全面盘点多模态融合算法及应用场景

关注作者&#xff0c;分享AI全维度知识。作者拥有10年互联网服务架构、AI产品研发经验、团队管理经验&#xff0c;同济本复旦硕博&#xff0c;复旦机器人智能实验室成员&#xff0c;阿里云认证的资深架构师&#xff0c;项目管理专业人士&#xff0c;上亿营收AI产品研发负责人 多…

AI 绘图要如何入门?有哪些好用的软件推荐?(附工具+教程+变现模式)

1.Ai绘画如何入门 不需要把Ai绘画想的很复杂 抛去复杂的应用 使用现成简单的工具 只需要学会提示词 描述你想要的画面即可 提示词 不需要太复杂&#xff0c;也不能太简单&#xff0c;太简单依赖于ai的基本样式&#xff0c;关键是要抓住你想要的核心描述 AI不太擅长理解人类的…

Flask和Django的对比

文章目录 1. 简介FlaskDjango 2. 安装和创建项目FlaskDjango 3. URL路由FlaskDjango 4. 数据库支持FlaskDjango 5. 管理后台FlaskDjango 6. 总结 Flask和Django都是Python Web框架&#xff0c;它们在开发Web应用程序时都能提供强大的功能。本文将对这两个框架进行对比&#xff…

PPT 隐藏开启对象图层

目录预览 一、问题描述二、解决方案三、参考链接 一、问题描述 制作PPT的时候&#xff0c;有时候需要在一张PPT放置多个依次出现的内容&#xff0c;然后设置对应的动画&#xff0c;要是需要对某个内容进行修改的话&#xff0c;就会很不方便&#xff0c;这个时候就需要使用&…

微信小程序上架,AI类目审核(AI问答、AI绘画、AI换脸)

小程序对于生成式AI类目的产品上架审核较为严格&#xff0c;这也是近两年新增了几个类目&#xff0c;一旦小程序中涉及生成式AI相关的内容&#xff0c;如果你选择相应类目&#xff0c;但审核被划归为这一类&#xff0c;都需要准备此类目的审核&#xff0c;才能正常上架。 如果…

淘宝API探秘:一键获取店铺所有商品的魔法之旅

在数字时代的今天&#xff0c;数据已经成为了商业世界中的魔法石。而对于淘宝店主或者那些想要深入探索淘宝数据的人来说&#xff0c;淘宝API就像是打开阿里巴巴宝藏库的钥匙。今天&#xff0c;我们就来一起探索如何使用淘宝API&#xff0c;特别是如何获取店铺所有商品的接口&a…

倩女幽魂手游攻略:新人入坑必看指南!

《倩女幽魂》是一款经典的MMORPG游戏&#xff0c;凭借其丰富的剧情、精美的画面和多样的玩法&#xff0c;吸引了众多玩家。在游戏中&#xff0c;提升角色等级和战斗力是每个玩家的核心目标。本文将详细介绍如何在游戏中快速提升角色等级、增强实力&#xff0c;并提供一些实用的…

MT2076 小码哥处理订单

思路&#xff1a; 使用二分&#xff1a;题目中隐含条件&#xff1a;如果不满足&#xff0c;需要找到第一个不满足的订单。 二分法需要满足单调性or有一个界线使前后两部分性质相反。这里的”界线“为&#xff1a;是否满足条件。假设第i天无法满足&#xff0c;则后面的所有天都…