我有一个扩展名为XLS
的文件。当我在Excel
中打开它时,它具有带有标题的列。我想通过其标题在Matlab的每一列中获取数值数据。例如,当我尝试数据('y')时,我得到了错误。
答案 0 :(得分:1)
使用xlsread:
[data, header] = xlsread('myfilelocation','sheetname');
如果xls文件仅包含一张纸或者它是您要读取的第一张纸,则可以跳过 sheetname
,即xlsread('myfilelocation')
。
然后您可以搜索标题
myHeaders = {'X','Y','Z'};
for i = 1:numel(myHeaders)
data(:,i) = data(:,strcmp(header, myHeaders{i}));
end
请注意,xlsread
的第二个输出不一定是标头,而是所有非数字数据。如果您的xls工作表确实包含标题文本以外的其他内容,则应使用header(1,:)
提取标题文本。
答案 1 :(得分:1)
最有效的方法是使用readtable,因为该功能会自动为您检测标题。
读取表并将其存储在表T中:
T = readtable('yourfile.xls');
然后只需使用点表示法即可访问您的数据。例如,要访问第一列中包含的数据,您只需使用标题的名称即可(例如 FirstColumnHeader ):
DataFirstColumn = T.FirstColumnHeader
答案 2 :(得分:0)
这是一个演示代码,
filename = %name of the file;
delimiter = {','}; %it's comma separated, can be changed
startRow = 3;
fileID = fopen(filename,'r');
formatSpec = '%f%f[^\n\r]'; %reading first two column only. can be changed.
dataArray = textscan(fileID, formatSpec, 'Delimiter', delimiter, 'TextType','string', 'HeaderLines' ,startRow-1, 'ReturnOnError', false, 'EndOfLine','\r\n');
fclose(fileID);