How to use a string as name for variable/array?
Show older comments
Hi, I'm trying to assign titles to a bunch of arrays extracted from columns in an excel sheet. I used: Data_raw=readtable('nameoffile.xslx'); Colum_names=Data_raw.Properties.VariableNames; To extract the titles of each column I tried to use loop to go throuhg all the arrays [m,n]=size(Data_raw); for i=1:n Char(Column_names(1,i))=table2array(Data_raw(:,i)); end
I'm not sure if there is a way to make it work I tried to use the genvarname function or using {} but no luck. I know its not a complicated question but any guidance will be appreciated. Thank you.
3 Comments
Stephen23
on 3 Oct 2018
"I know its not a complicated question..."
You are right, the question is not complicated. But the solution is more complicated that you realize (and should definitely be avoided).
"... but any guidance will be appreciated."
Simple: avoid naming variables dynamically. Magically naming variables is one way that beginners force themselves into writing slow, complex, buggy code that is hard to debug. Read this to know why:
Your data are already easily and efficiently accessible within that table: why can't you just use that table? What are you hoping to achieve by having lots of magically named variables (which make debugging harder, tracking variables harder, slows down your code, etc.) that you cannot do by directly and efficiently accessing that data in that table?
Daniel Barrera
on 3 Oct 2018
Stephen23
on 3 Oct 2018
@Daniel Barrera: I hope that it was interesting and useful: the more you read, the more you will learn about how to write efficient MATLAB code and making your own life easier:
Please also feel free to vote for my tutorial and any of the answers that I wrote in it, if they were useful for you. Support is always welcome :)
Answers (1)
Raghunandan V
on 5 Oct 2018
0 votes
I think the answer for this question is already provided here
https://in.mathworks.com/matlabcentral/answers/35295-how-to-convert-a-string-into-a-variable
Please check
1 Comment
... which is how some beginners force themselves into writing slow, complex, buggy code:
It is easier to write simpler, neater, more efficient code using indexing, fieldnames, etc..
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!