MATLAB CSV 文件读取

MATLAB CSV File Read

我有一个包含以下内容的 CSV 文件:

Header line1
Space
Space
Space
,1,2,3,
1,81,82,83

我正在尝试将数据部分读入数字矩阵。 这是我实现的代码,但是我遇到了问题。

%To get the number of rows in the file
for i = 1:9
   headerline = fgetl(fid);
   headerline = strsplit(headerline,',')
end

fclose(fid);

fopen(fid);
% to get the data
C = textscan(fid,'%s','headerline',4,'EmptyValue',=Inf)
rowsize = size(C{1});
data = []

% to store data in matrix
for i = 1:rowsize
   data = [data, strsplit(C{1}{i},',')];
end

谁能推荐一种更好的方法来将整个文件读入数字矩阵?谢谢!

你真正需要的就是这个;

fid = fopen('your.csv');
data = cell2mat(textscan(fid, '%f%f%f%f', 'Delimiter', ',', 'HeaderLines', 4));

如果您的 csv 仅包含数值,您也可以使用 csvread (https://www.mathworks.com/help/matlab/ref/csvread.html)。

M = csvread(filename,R1,C1) reads data from the file starting at row offset R1 and column offset C1. For example, the offsets R1=0, C1=0 specify the first value in the file.

所以在这种情况下:

data = csvread('filename.csv', 4, 0)