Convert spreadsheet that contains variable names and numbers into simple variables
조회 수: 6 (최근 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!



