How do I create variable names based on string values in an excel workbook and assign values to each variable with data in the workbook
2 views (last 30 days)
Show older comments
I have an excel workbook that has names in column 1 numbers in column 2 and a variation of numbers in columns 3 through 15. I am trying to create variables with names equal to the string values in column 1 concatenated with the numbers in column 2 and assign the number values in columns 3 through 15 in each row to the respective variable created from that row. Also, I have some columns(3:15) in certain rows that do not contain any values. I have attached a sample excel document and the code that I have so far is
[num, txt, raw] = xlsread('sampleData.xls','Year2016');
fclose('all');
[rows columns] = size(raw);
names = raw(2:rows,2); % my data contains headers that I do not care about
nameNumber = num2str(num(2:rows,1)); % I have duplicate names and need to distinguish them
nameAndNumber = genvarname(strcat(names, '_Number_', nameNumber, '_2016'));
that all works but then I do not know how to assign the data to each variable. Everything I have tried has not worked. The end product would be variables that look something like this
Peter_Number_1_2016 =
164 144 153 167 164 158
Jason_Number_1_2016 =
157 160 183 175 164
Jason_Number_2_2016 =
153 165 193 155 201 78 72
and so on
2 Comments
Accepted Answer
Adam
on 14 Dec 2016
Just use struct fields instead. This is ghastly to do with variables, but you can create a struct field from a string easily, e.g.:
n = 2;
name = 'Fred';
fieldName = [ name num2str(n) ];
s.( fieldName ) = 3;
4 Comments
Image Analyst
on 16 Dec 2016
Hopefully you'll reconsider if I also say I think it's not a good idea. So now, Stephen, Adam, and I all think it's not wise or best to do that (even if it's technically possible), and I'm sure others think likewise.
More Answers (0)
See Also
Categories
Find more on Data Type Identification in Help Center and File Exchange
Products
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!