Matlab Simulink:在范围/块中绘制时间序列以可视化数据
我有一个调用用户定义函数的Simulink块。此函数调用另一个函数:thingspeakread.m(由提供) 从这里开始,我想要两个结果。数据(数字类型、向量)和时间戳(字符串、向量) 现在,我能够将“Data”的值放入一个范围而不产生太多问题(使用coder.extrinsic('thingSpeakRead')并预先分配变量来存储这些点)。我遇到的问题是:我需要更清楚地理解数据可视化,为此,我需要根据时间戳向量中显示的信息绘制“数据”。时间戳仅每分钟变化一次 我将尝试做什么,但不能让我很满意:Matlab Simulink:在范围/块中绘制时间序列以可视化数据,matlab,scope,time-series,data-visualization,simulink,Matlab,Scope,Time Series,Data Visualization,Simulink,我有一个调用用户定义函数的Simulink块。此函数调用另一个函数:thingspeakread.m(由提供) 从这里开始,我想要两个结果。数据(数字类型、向量)和时间戳(字符串、向量) 现在,我能够将“Data”的值放入一个范围而不产生太多问题(使用coder.extrinsic('thingSpeakRead')并预先分配变量来存储这些点)。我遇到的问题是:我需要更清楚地理解数据可视化,为此,我需要根据时间戳向量中显示的信息绘制“数据”。时间戳仅每分钟变化一次 我将尝试做什么,但不能让我很满
- 使用datenum()将时间戳转换为数值,格式为“mm/dd/yyyy HH:mm:SS”
- 将日期转换为朱利安日期类型李>
- 将小时、分钟和秒转换为3个不同的数组李>
编辑1:我可以在Simulink中使用类似的功能吗?转换为
datenum
是将“日期”传递给Simulink信号的唯一方法
没有显示时间序列的机制,日期显示在x轴上,而不编写自定义代码
如果在模拟运行时不需要显示时间序列,则只需将其转储到现有代码中的mat文件中,并在后处理期间生成绘图
如果希望它在模拟运行时显示,则需要编写自定义显示块。这应该作为
2级M-code S函数
完成,但可以使用MATLAB函数
块完成。无论哪种方式,您都可以将datenum
输入到块中,然后将datenum
转换回日期-在生成可视化之前使用datetime
,或者在生成可视化之后使用datetick
转换为datenum
是传递“日期”的唯一方法关闭Simulink信号
没有显示时间序列的机制,日期显示在x轴上,而不编写自定义代码
如果在模拟运行时不需要显示时间序列,则只需将其转储到现有代码中的mat文件中,并在后处理期间生成绘图
如果希望它在模拟运行时显示,则需要编写自定义显示块。这应该作为
2级M-code S函数
完成,但可以使用MATLAB函数
块完成。无论哪种方式,您都可以将datenum
输入到块中,然后将datenum
转换回日期-在生成可视化之前使用类似于datetime
的方法,或者之后使用datetick
可以使用MATLAB函数块调用MATLAB,在其中可以编写任何MATLAB代码来绘制数据吗?您需要在MATLAB函数块中将函数声明为外部函数。是否可以使用MATLAB函数块调用MATLAB,在其中可以编写任何MATLAB代码来绘制数据?您需要在MATLAB函数块中将您的函数声明为外部函数。感谢您在这方面的输入。抱歉听起来这么懒,但是,你能在这里分享一个关于如何构建二级S函数的教程吗?最好的起点是在MATLAB命令行中键入sfundemos
,然后导航到二级M代码示例。没有任何具体的可视化演示,但它们将展示如何将数据输入到S函数中,从那里只需将数据放入MATLAB图形窗口即可。非常感谢Phil。是的,我深入研究,看到了模板和示例。将从那里开始。谢谢你在这方面的投入。抱歉听起来这么懒,但是,你能在这里分享一个关于如何构建二级S函数的教程吗?最好的起点是在MATLAB命令行中键入sfundemos
,然后导航到二级M代码示例。没有任何具体的可视化演示,但它们将展示如何将数据输入到S函数中,从那里只需将数据放入MATLAB图形窗口即可。非常感谢Phil。是的,我深入研究,看到了模板和示例。我们将从那里开始。
[data,timestamps] = thingSpeakRead(___)