Simulink does not support loading the input data in file

14 Ansichten (letzte 30 Tage)
Philipp
Philipp am 5 Sep. 2012
Kommentiert: bushra sultana am 25 Sep. 2020
Hi,
I have created a matrix called PMAX.mat consisting of samples in the first row and values in the second row.
For example: 1 2 3 4 5 6 7 .... samples 3 2 1 5 6 4 3 .... values
I want to use this matrix for a from file block in my Simulink simulation.
Now I get always the same error message:
Simulink does not support loading the input data in file 'PMAX.mat'. For data saved using MAT file versions prior to 7.3, Simulink can only load two-dimensional arrays consisting of one-dimensional, double, noncomplex samples. To load data of any other type, complexity or dimension, use a timeseries object and save the file using MAT file version 7.3 or later. For example, use: 'save file_name -v7.3 timeseries_object'.
My preferences in Simulink are: 1. Steps from 1 to 525600 2. Fixed step size 1 3. Solver: discrete
Thanks for your help.
Philipp

Akzeptierte Antwort

TAB
TAB am 5 Sep. 2012
From File block not supports Version 7.0 or earlier mat-file. Save your create a mat-file with the same date in the Version 7.3.
In the base workspace run below commands
clear all;
load('PMAX.mat');
delete('PMAX.mat');
save('PMAX.mat','-v7.3');
Run the simulation again.
  2 Kommentare
K E
K E am 5 Sep. 2012
Very useful!
bushra sultana
bushra sultana am 25 Sep. 2020
how can we see the values in mat file on simulink... i used display block but it doesn't show the exact values...instead display the complete values from 0 to 255 for uint8 data type

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (3)

Philipp
Philipp am 6 Sep. 2012
Perfect, no it works!
Thanks!
  1 Kommentar
Mohd Noor
Mohd Noor am 6 Nov. 2015
An example that works. The file name is "data.mat"
t = [ 1 2 3 4 5 6 7 8 9 10]; v = [1.123 1.125 1.235 1.443 1.135 1.123 1.125 1.235 1.443 1.135]
noor = timeseries(v,t);
save('data.mat','noor', '-v7.3');

Melden Sie sich an, um zu kommentieren.


Christian
Christian am 3 Dez. 2015
I had the same problem.
I had simply overlooked, that some of my value types were single.
But as i know know, it can only handle double typ.
So a typecast to double solved my problem in combination with the '-v7.3'-attribute.
Something like
PMAX=double(PMAX);

jessupj
jessupj am 23 Dez. 2019
Bearbeitet: jessupj am 23 Dez. 2019
It seems like there is also a problem with broadcasting between column and row vectors even after saving -v7.3 and converting to double.
Simulink can only load two-dimensional arrays or timeseries objects.
The array must consist of one-dimensional, double, noncomplex samples.
Calling X=X(:) before saving worked in my case (r2019a) and didn't require saving to -v7.3 or double conversion.

Kategorien

Mehr zu Programmatic Model Editing finden Sie in Help Center und File Exchange

Produkte

Community Treasure Hunt

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

Start Hunting!

Translated by