尽管这个问题几乎是完全重复的,但@NathanG 提供的链接中建议的解决方案(即 using xlsread
)只是解决问题的一种可能方法。链接中的作者还建议使用textscan
,但没有提供有关如何操作的任何信息,所以我想我会在这里添加一个示例:
%# First we need to get the header-line
fid1 = fopen('file.csv', 'r');
Header = fgetl(fid1);
fclose(fid1);
%# Convert Header to cell array
Header = regexp(Header, '([^,]*)', 'tokens');
Header = cat(2, Header{:});
%# Read in the data
fid1 = fopen('file.csv', 'r');
D = textscan(fid1, '%s%d%s', 'Delimiter', ',', 'HeaderLines', 1);
fclose(fid1);
Header
现在应该是单元格的行向量,每个单元格都存储一个标题。D
是单元格的行向量,其中每个单元格存储一列数据。
我没有意识到要“附加”D
到Header
. 如果你愿意,你可以把它们放在同一个结构中,即:
S.Header = Header;
S.Data = D;