Matlab/Simulink的Excel数据导入1-D Lookup Table

目录

前言

第一次尝试

1、Breakpoints那一列数据严格递增

2、模块详情不一样

3、excel数据导入到工作区

4、持续报错

第二次尝试

1、利用程序将excel数据导入到工作区,生成object

2、选择object选项

总结


前言

和之前建立simulink输出的plot曲线导入到excel一样(🚪:Matlab画的plot导入到excel),这一次是想反过来,讲excel里面的数据导入到simulink里面形成一个模块,在论坛里询问大家,说是1-D Lookup Table可以实现这个操作。

我想要得到的曲线如下图所示:


第一次尝试

首先是在B站上面搜索相关教学视频,这个UP主我觉得讲的最好(👉Simulink 0基础入门教程 P12 查表模块的介绍 Lookup table),我看那个操作也不是很困难,就是要把excel里面的数据导入到matlab的工作区,我们假设Breakpoint为x,Table Data为y,在1-D Lookup Table详情里面对应Sourse源后面输入x和y就行了。唯一需要注意的是Breakpoint需要严格递增

1、Breakpoints那一列数据严格递增

首先来看看我excel里面的数据吧,是两列数据,第一列代表时间,第二列代表力。为了使其严格递增,我在excel里对其两列选中进行升序排列。

2、模块详情不一样

正当我踌躇满志想这还不是简简单单,后面我打开simulink的1-D Lookup Table模块后发现不对劲,怎么和视频中的不一样?

这是UP主视频中的:

这是我的:

没有那个Source,可能是因为matlab的版本不同导致的吧(我的版本是R2019b)。

3、excel数据导入到工作区

但是我没有慌,我把excel的两列数据导入到了matlab工作区。

然后和UP主一样的把time和force分别填到Breakpoints 1和Table data后面,再apply。

4、持续报错

之后就有了这个报错:

看来还是Breakpoints的问题,于是我仔细检查time这一列的数值大小是不是严格增大,我发现了有一些时间是相同的,但是数值并不同,我改正后还是报这个错误,试了好几次,而且我这个有两百多个数据点,查起来也麻烦。

第二次尝试

同样也是在网上搜索相关资料,在CSDN上发现有人发将Excel数据导入到2-D Lookup Table(这是ta的地址🚪:【Matlab】2-D Lookup Table 导入Excel数据 简单教程),和1-D Lookup Table有异曲同工之妙,我尝试了一下最后成功了,接下来我发一下过程。

1、利用程序将excel数据导入到工作区,生成object

和ta的那篇内容一样,只是ta是有两个指标X1(Breakpoints 1)和X2(Breakpoints 2)才能对应一个Y(Table data)。我这里是两列数据,在ta提供的代码上稍微修改下:

Matlab 复制代码
data = xlsread('file.xlsx');
mylookuptable = Simulink.LookupTable;
mylookuptable.Breakpoints(1).Value = data(1:261 ,7);
mylookuptable.Table.Value = data(1:261 ,8);
mylookuptable.StructTypeInfo.Name = 'filelookuptable';

这个excel文件要和simulink模型在同一个文件夹下,我只有一个Breakpoints,所以删除了一行,我是两列,第7列和第8列,将这几行代码输入到matlab的命令行中回车,在工作区workspace就会生成一个mylookuptableobject

这是我生成的object里面的内容:

2、选择object选项

然后回到simulink中,点开1-D Lookup Table的详情页,将Data specification选择Lookup tableobject(之前用的是Table and breakpoints)。

后面的name就是那个工作区mylookuptable的object。

再点击apply就成了,效果看起来和原图也大差不差。

总结

就是按照上面我写的内容来完成的,有什么不懂的欢迎讨论,评论必回!

感谢那些做文字/视频教程的博主和UP主们。

希望这篇文章对大家能有帮助!!!

相关推荐
敲代码敲到头发茂密4 分钟前
C++之运算符&循环
开发语言·c++
Han.miracle5 分钟前
JavaScript 流程控制与数组实战闯关
开发语言·前端·javascript
程序员梁白开7 分钟前
吃透 Java 集合框架:单列集合与双列集合的核心原理与实战应用
java·开发语言·jvm·windows·spring·java-ee
切糕师学AI8 分钟前
JavaScript 深拷贝方案全解析:从兼容性到健壮性的优先级指南
开发语言·javascript
AC赳赳老秦9 分钟前
批量文档处理自动化:DeepSeek + Python 实现多格式文件内容提取与汇总
开发语言·spring boot·elasticsearch·postgresql·kafka·政务·deepseek
菩提祖师_9 分钟前
基于大数据的电力负荷预测与调度研究
java·开发语言·网络·c++·物联网
csbysj202010 分钟前
jQuery 过滤
开发语言
菩提祖师_11 分钟前
基于Elasticsearch的全文检索系统优化
大数据·开发语言·深度学习·搜索引擎
Larry_Yanan11 分钟前
Qt多进程(七)内存映射
开发语言·qt
_OP_CHEN14 分钟前
【从零开始的Qt开发指南】(十五)Qt窗口之对话框终极指南:从分类到实战,解锁交互设计新高度
开发语言·qt·前端开发·对话框·客户端开发·gui开发·qt窗口