How would I implement the following programatically instead of using evalin?

matlI have a list of signals in a loop. The variables names of the signals are in signal list.
oldsize=evalin('base', ['length(' signallist{i} ')']);
assignin('base', signallist{i}, ...
evalin('base', [signallist{i} '(1:shortestsignalsize)'])); % shorten all signals

5 Comments

Is this code being called from inside a GUI?
Is is possible to simply pass the data as input/output arguments?
The most important question:
How did all of those separate variables get into the base workspace in the first place?
Using a script called MDF import.
MDFImport developed and avaible in the community so I do not want to modify it.
Thanks
"MDFImport developed and avaible in the community so I do not want to modify it."
If you downloaded this very outdated, very badly designed tool:
then I strongly recommend you avoid it. An updated, much better version is available here:
It lets you import the data into one variable (see the help for importMDF3), thus you can trivially avoid the bad code that you will otherwise be forced to write accessing all of those numbered variables:
"This is new than above and allows to interpolate all the data to a single axis."
It might be newer, but it is a badly designed (no output argument) and GUIDE-based....
Better to use importMDF3 from here:
or probably something from the vehicle network toolbox.

Sign in to comment.

Answers (0)

Categories

Find more on Data Import and Analysis in Help Center and File Exchange

Products

Tags

Asked:

on 6 Dec 2019

Commented:

on 7 Dec 2019

Community Treasure Hunt

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

Start Hunting!