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 次查看(过去 30 天)
显示 更早的评论
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 个评论
采纳的回答
Adam
2016-12-14
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 个评论
Image Analyst
2016-12-16
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.
更多回答(0 个)
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Data Type Identification 的更多信息
产品
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!