MATLAB Answers

Outputting to string

7 views (last 30 days)
I want to do this, essentially:
for i = 1:3
['variable_' int2str(i)] = function(i);
How do I tell MATLAB to create a series of variables as outputs? It isn't good enough to output to variable(i) as the output is a series of matrices and vectors, not a single value.

Accepted Answer

Kenneth Eaton
Kenneth Eaton on 27 Jan 2011
You can do this using the function EVAL:
for i = 1:3
eval(['var_' int2str(i) ' = fcn(i);']);
But in general an easier approach is to store your outputs in a cell array instead of a bunch of variables:
outputArray = cell(1,3);
for i = 1:3
outputArray{i} = fcn(i);
This makes it much easier to access the data later since you can just index into the cell array to get its contents, whereas for the first approach you would likely have to reconstruct a variable name and use EVAL again later to access the data stored in a particular variable.
  1 Comment
Sam Falzone
Sam Falzone on 27 Jan 2011
Thank You

Sign in to comment.

More Answers (1)

Oleg Komarov
Oleg Komarov on 27 Jan 2011
Read this FAQ 4.6

Community Treasure Hunt

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

Start Hunting!