Info

この質問は閉じられています。 編集または回答するには再度開いてください。

Imported Excel strings are not functioning correctly in matlab 2012b

1 回表示 (過去 30 日間)
Michael
Michael 2012 年 11 月 19 日
閉鎖済み: MATLAB Answer Bot 2021 年 8 月 20 日
I have used xlsread to read in a spreadsheet containing text and numbers. I am trying to use the text to set up a structure system and noticed that the strings read from excel do not resolve the same way strings entered in matlab do. For instance, if I use
structure.('NAME1').('NAME2') = 1;
it correctly generates the structure. However, if I have
[~,names,~] = xlsread(file,sheet,corners);
structure.(names(1,1)).(names(1,2)) = 1;
I get an error saying:
Argument to dynamic structure reference must evaluate to a valid field name.
I've noticed that names(1,1) returns 'NAME1' but the string does not appear in blue in the command window the way it does if I just type 'NAME1'. What is going on here? Is it the difference between an apostrophe and a single quote?
I have similar trouble with cells imported from excel when trying to create vectors with them. Rather than just creating one vector with all the data in it it creates a cell structure with independent cells for the data. What amd I missing about the way matlab reads data from Excel?

回答 (1 件)

owr
owr 2012 年 11 月 19 日
Just a guess, but "names" is probably a cell array, so names(1,1) and names(1,2) are 1x1 cell arrays. You need to get access to the character strings within.
Try this instead:
structure.(names{1,1}).(names{1,2}) = 1;
If this is it, spend a little time reading up on the difference of using "(...)" indexing and "{...}" indexing of cell arrays in ML.

タグ

製品

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by