What can I use instead of 'load' in Simulink?

조회 수: 2 (최근 30일)
Marcus Jansson
Marcus Jansson 2017년 6월 19일
I have a Simulink model to simulate motion in water. I also have hundreds of .mat files with 3D flow field data (u, v, w in m/s). The flow field files are sequential in time, starting at time = 0 and with a time resolution of 0.2s (time = 0 => file_1, time = 0.2 => file_2 etc.). Depending on the simulation time I want to read the 3D flow field data from the corresponding file for interpolation, in both space and time (time = 0.15 => interpolation in time between file_1 and file_2).
In Matlab this is straight forward, then I'm able to use the 'load' function (and/or 'matfile' function) to read the data. When implementing a Matlab Function in Simulink I'm no longer able to use either the 'load' or the 'matfile' function to read the data.
How can I go forward from here?
  • It says here http://se.mathworks.com/help/matlab/ref/load.html that the 'load' function should work if assigned as a struct, but I cannot get it to work. Maybe this is due to my old Matlab version, r2013b.
  • I do not have to use a Matlab Function block, if there is another way to read the data during simulation.
  • I have tried using callbacks, then I'm allowed to use the 'load' function, but they only executes once and not for every timestep during the simulation. *
  • I have tried to figure out if it's possible to use the blocks 'From File' and 'To File' but without luck, my Simulink skills aren't as good as my Matlab skills.
  • Due to the size of the files I cannot load them once in advance to Workspace, it will fill up the memory.
The .mat files contain a struct with the desired data (flow field; u, v, w) as follows:
field =
Single: [1x1 struct]
Var: [1x1 struct]
>> field.Single
ans =
U: [256x256x128 single]
V: [256x256x128 single]
W: [256x256x128 single]
T: [256x256x128 single]
>> field.Single.U(1,1,1)
ans =
0.6148
Coder error from Simulink:
Report, mouse pointer over 'load':
Do you have any suggestions?

답변 (0개)

카테고리

Help CenterFile Exchange에서 Sources에 대해 자세히 알아보기

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by