Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/matlab/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Matlab Simulink:在范围/块中绘制时间序列以可视化数据_Matlab_Scope_Time Series_Data Visualization_Simulink - Fatal编程技术网

Matlab Simulink:在范围/块中绘制时间序列以可视化数据

Matlab Simulink:在范围/块中绘制时间序列以可视化数据,matlab,scope,time-series,data-visualization,simulink,Matlab,Scope,Time Series,Data Visualization,Simulink,我有一个调用用户定义函数的Simulink块。此函数调用另一个函数:thingspeakread.m(由提供) 从这里开始,我想要两个结果。数据(数字类型、向量)和时间戳(字符串、向量) 现在,我能够将“Data”的值放入一个范围而不产生太多问题(使用coder.extrinsic('thingSpeakRead')并预先分配变量来存储这些点)。我遇到的问题是:我需要更清楚地理解数据可视化,为此,我需要根据时间戳向量中显示的信息绘制“数据”。时间戳仅每分钟变化一次 我将尝试做什么,但不能让我很满

我有一个调用用户定义函数的Simulink块。此函数调用另一个函数:thingspeakread.m(由提供)

从这里开始,我想要两个结果。数据(数字类型、向量)和时间戳(字符串、向量)

现在,我能够将“Data”的值放入一个范围而不产生太多问题(使用coder.extrinsic('thingSpeakRead')并预先分配变量来存储这些点)。我遇到的问题是:我需要更清楚地理解数据可视化,为此,我需要根据时间戳向量中显示的信息绘制“数据”。时间戳仅每分钟变化一次

我将尝试做什么,但不能让我很满意:

  • 使用datenum()将时间戳转换为数值,格式为“mm/dd/yyyy HH:mm:SS”
这个选项会发回一个巨大的数字(确实可以用来绘制数据与时间的对比图,但它看起来并不“好”,因为这个数字太大了,我不喜欢它)

我也想过这些:

  • 将日期转换为朱利安日期类型
  • 将小时、分钟和秒转换为3个不同的数组
但我看不出这能让我达到我想要的目的(即绘制数据与时间的对比图,能够很容易地发现“时间”显示的数字对应于一天中特定的HH:MM:SS)

你们有什么建议吗?提前多谢


编辑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(___)