Simulink does not support loading the input data in file

91 ビュー (過去 30 日間)
Philipp
Philipp 2012 年 9 月 5 日
コメント済み: bushra sultana 2020 年 9 月 25 日
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

採用された回答

TAB
TAB 2012 年 9 月 5 日
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 件のコメント
K E
K E 2012 年 9 月 5 日
Very useful!
bushra sultana
bushra sultana 2020 年 9 月 25 日
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

サインインしてコメントする。

その他の回答 (3 件)

Philipp
Philipp 2012 年 9 月 6 日
Perfect, no it works!
Thanks!
  1 件のコメント
Mohd Noor
Mohd Noor 2015 年 11 月 6 日
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');

サインインしてコメントする。


Christian
Christian 2015 年 12 月 3 日
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 2019 年 12 月 23 日
編集済み: jessupj 2019 年 12 月 23 日
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.

カテゴリ

Help Center および File ExchangeSources についてさらに検索

製品

Community Treasure Hunt

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

Start Hunting!

Translated by