Function that outputs a varying number of variables depending on input --> N inputs = N output variables

17 views (last 30 days)
I have read that dynamic variables are generally bad practice and can be avoided using other methods. However, I was curious about a potential use case. I would like to make a function that takes in N inputs that correspond to the locations and filenames of several datasets and then the function loads the data and saves it to a variable (N inputs = N ouput variables). Is there a good way to do this? To my understanding I would be unable to use alternate methods given that the data I am loading are mutlidimensional arrays of varying dimensions.
I considered padding each array to the same size with NaNs, but I am very hesistant to use this method. Does anyone have any recommendations?
I only want to do this to save myself time with either copying and pasting or typing out the code to load each file separately.
Would using a struct be possible, where each field corresponds to a dataset?

Accepted Answer

Stephen23
Stephen23 on 3 Oct 2022
Moved: Matt J on 3 Oct 2022
"To my understanding I would be unable to use alternate methods given that the data I am loading are mutlidimensional arrays of varying dimensions."
Why does that stop you from using container arrays? That is precisely what container arrays are for !
"Is there a good way to do this?"
There are certainly better ways of doing this, some obvious approaches to try would be:
  • a non-scalar structure with fields e.g. LOCATIONS and FILENAMES.
  • one or two cell arrays, possibly in conjunction with VARARGIN and VARARGOUT.
See also:

More Answers (0)

Categories

Find more on Variables in Help Center and File Exchange

Community Treasure Hunt

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

Start Hunting!