Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/matlab/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用fopen/fclose在Matlab中导入CSV文件,该文件具有不同长度的注释,且没有特定的前置字符_Matlab - Fatal编程技术网

使用fopen/fclose在Matlab中导入CSV文件,该文件具有不同长度的注释,且没有特定的前置字符

使用fopen/fclose在Matlab中导入CSV文件,该文件具有不同长度的注释,且没有特定的前置字符,matlab,Matlab,我需要将一个CSV文件导入matlab,该文件有160000行和25列。第33栏有一些行的注释。注释的长度不一,并且是文本性的,例如,注释可能会读到(不带引号)由于抑制而导致的死亡率(这是一个森林资源清查数据库) 前四列表示树测量的地点和时间 该计划的最终目标是将文件中的信息整合成独特的较小文件,每个文件将以独特的地点和时间组合保存所有树的数据 目前我使用的进口策略是 fid = fopen('TP07303_v1.csv','r'); tline = fgetl(fid); % split

我需要将一个CSV文件导入matlab,该文件有160000行和25列。第33栏有一些行的注释。注释的长度不一,并且是文本性的,例如,注释可能会读到(不带引号)由于抑制而导致的死亡率(这是一个森林资源清查数据库)

前四列表示树测量的地点和时间

该计划的最终目标是将文件中的信息整合成独特的较小文件,每个文件将以独特的地点和时间组合保存所有树的数据

目前我使用的进口策略是

fid = fopen('TP07303_v1.csv','r');
tline = fgetl(fid);

% split the title line (header) and call it A
A(1,:) = regexp(tline,'\,','split');


% parse and read the rest of the file
ctr = 1;
while(~feof(fid))
    if ischar(tline)
        ctr = ctr + 1;
            tline = fgetl(fid);
            A(ctr, :) = regexp(tline,'\,','split');
    else
        break;
    end
end

fclose(fid);

但当我在第一行发表评论时,它就遇到了障碍。我做的任何事情都不需要评论,我很高兴不完全导入该专栏。有什么方法可以做到这一点吗?

我对列数(25或33+?)也感到困惑,但如果每行的逗号数不同,这就是问题的原因。这就是您不使用dlmread的原因吗

此外,ischar似乎是多余的,因为tline将始终是一个字符,除非您位于文件的末尾,但您在该条件下循环。实际上,您正在连续两次检查同一事物

while(~feof(fid))
    ctr       = ctr + 1;
    tline     = fgetl(fid);
    tmp       = regexp(tline,'\,','split');
    % make sure to not assign more than 25 elements to this row of A
    A(ctr, :) = tmp(1:25);
    if numel(tmp)>25
        % do something with the rest
    end
end

而且永远不会少于25个元素,对吗?

有什么理由不能将
textscan
与公认的长格式字符串一起使用吗?您可以在格式字符串的末尾使用
%*[^\n]
跳过其余的列…”有约160000行和25列。第33列有“它是哪一列?”?它有25列还是33列?您可以发布几行示例数据吗?