如何根据时间导入和读取大数据集?

时间:2014-04-22 08:57:52

标签: matlab struct dataset simulink mat

直接回答问题:

加载到matlab中时,

Values.mat显示1x1结构。其中有以下内容:

信息{1x1 Struct}

X {1x1 Struct}

Y {1x31 Struct}

说明{1x1 Struct}

我的数据位于Y.当我打开每个结构时,会有更多数据。虽然,感兴趣的数据只是数据集中的一个,但我们称之为DATA。

DATA 1x27048

我知道生成DATA的总模拟时间为27秒@ 0.001;即每个值在0.001秒后产生。

我已经将Values.mat中所需的数据分成了一个单独的values_sep.mat。

values_sep.mat {27048x2} : 27048x1 = original data;27048x2 = TIME(0,0.001,0.002...27); 

我的目的是按照定义的时间读取此数据集

TIME ----数据

0.001 - value_1

0.002 - value_2 ... 0.00N - value_N。

每当我尝试在SIMULINK中读取此数据时,范围内的所有get都是彩色线条。所有其他方法也没用(从工作区,作为27048x2(随时间))。

请指导我如何按时阅读此数据集。

回复第1条评论 @ am304

ERROR SCREEN SHOT

  

请检查添加的图片:

     

A - 我将数据定义为struct。

     

B - 当我尝试添加创建的MAT文件的名称(KLPD.mat)时,我   得到这个错误。

     C& C& D - 我创建的数据的解释。

1 个答案:

答案 0 :(得分:1)

使用From Workspace块,但请确保排列数据,以便第一列是时间数据点,第二列是实际数据。

如果勾选“Interpolate data”,Simulink会根据原始数据中的时间步长插入数据。

如果使用变步长求解器,请将最大步长设置为0.001,或使用0.001s时间步长的固定步长求解器。将模拟停止时间设置为27秒。