我是Simulink的新手,我正在努力使用动态查找表(输入:x,xadta,ydata;输出:y)。
我在我的工作区中存储了几个2D向量(xdata和ydata),我想在动态查找表中的Simulink中使用它们,以根据Simulink(x)中的另一个变量返回值(y)。 如果我理解它是如何工作的,我首先要在Simulink中读取结构(时间,值,尺寸)中的2D矢量? 所以我这样做了,但我收到了一个错误:
vector.time = xdata; % dimension 1x100
vector.signals.values = ydata; % dimension 1x100
vector.signals.dimensions = [1 100];
save('vector.mat','vector')
错误
"每个的最后一个维度 ' signals.values'字段必须与' time'中的行数相同字段"
此外我不确定我想要做的是否合适......我使用我的矢量/结构的xdata作为"时间"在结构中让我的矢量在Simulink中可读。但我不认为它应该与时间观念有任何关系。我只想让Dynamic Lookup Table返回" ydata"对应于" x" =" xdata"的值的向量/结构的值。只有" x"在模拟中随时间变化。
答案 0 :(得分:0)
看起来您应该使用1D Lookup Table
,并将xdata
和ydata
变量(在MATLAB工作区中定义)用作块参数。
至于您获得的错误,似乎与使用From File
块(您看起来像是用来将数据输入模型)相关,而不是看起来 - 桌子本身。要使其工作,请将时间向量定义为列向量,而不是已完成的行向量,并将每行视为不同的时间点。
在每个时间点,您将获得不同的信号值。这就像一个查找表本身(查找每个不同时间值的信号值),但听起来并不像你真正希望实现的那样。