Convert spreadsheet that contains variable names and numbers into simple variables
17 次查看(过去 30 天)
显示 更早的评论
Hello everyone,
I've been trying to convert a Excel Spreadsheet to variables. The Spreadsheet only has two columns and looks somewhat like this:
Cw 0.35
A 2.7
ig1 4.171
ig2 2.34
ig3 1.521
...
as you can see the variable names are written in the first coulmn and the the variable values in the second coulmn.
All i want to do is to extract those variables with the given name and value to my workspace (as a 1x1 table) since I need them that way for my Simulink model. I've tried xlsread and readtable as well as the import data button but i cant get it to output anything different than a table.
There must be a very simple solution to this problem?
Any help would be greatly appreciated. Thank you.
6 个评论
Stephen23
2018-11-22
You could easily use that .xlsx file to define a structure with those fields. Then within Simulink refer to that structure and its fields.
Magically creating/accessing variable names is not recommended:
采纳的回答
dpb
2018-11-22
编辑:dpb
2018-11-22
OK, given the example data from the original question in an .xls file -- to build a struct with those variables as fields with the associated values:
>> [v,n]=xlsread('timon.xls'); % values double array, text names cellstr
>> s=cell2struct(num2cell(v),n,1) % convert to struct w/ field names with values
s =
struct with fields:
Cw: 0.3500
A: 2.7000
ig1: 4.1710
ig2: 2.3400
ig3: 1.5210
>>
Or, you can use the raw data returned as cell array--
[~,~,r]=xlsread('timon.xls');
s=cell2struct(r(:,2),r(:,1),1);
will return the same struct
3 个评论
dpb
2018-11-26
:) I agree! The syntax for building a structure isn't always greatly explained from struct documentation; you have to know the helper functions exist (which means must follow the links of "See Also" to learn about them.
更多回答(0 个)
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Spreadsheets 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!