MATLAB Answers

How to create new variables in batches with strcat

218 views (last 30 days)
What I want to do is something like
for m=1:11
for i=1:3
for k=1:5
for x=1:9
strcat(InputCell{m,1},'_', InputCell{1,i},'_',InputCell{m,i}{k},'_',InputCell{m,i}{k,2}{x}) = xlsread(filename,'strcat(InputCell{m,1},'_', InputCell{1,i},'_',InputCell{m,i}{k})', 'InputCell{m,i}{k,2}{x}')
Where strcat () creates a bunch of new variable names and xlsread reads the corresponding sheet and range... but strcat can only create string text, how can I let Matlab take that as new variable?
And I suppose the xlsread part also doesn't work as it is now... just let you guys know what I am thinking of ...
Thanks a lot!


Sign in to comment.

Accepted Answer

Stephen Cobeldick
Stephen Cobeldick on 9 Apr 2015
Edited: Stephen Cobeldick on 19 Jun 2019


Show 5 older comments
Walter Roberson
Walter Roberson on 15 Jan 2018
xian zhao you appear to be referring to Simulink in a way that does not have to do with the Question here in this posting. Please create a new Question.
xian zhao
xian zhao on 15 Jan 2018
At the begainning, I declare a variable whose name will change as above. However, it's suggest as explain above.
Walter Roberson
Walter Roberson on 15 Jan 2018
Simulink itself is not able to use variable names that change like that. You would have to be using something like a tunable parameter and set_param() calls if you were trying to use something like that, and there is simply no reason to want to do so when you could instead use a fixed variable and change its value instead of the name.
If you are trying to do this in a MATLAB Function block that is referenced by Simulink, there there is no hope that it could work except when Acceleration was completely off. For any other Acceleration, Simulink needs to compile to blocks (at least partly) and that compilation cannot use dynamic variable names.

Sign in to comment.

More Answers (0)