gpt4 book ai didi

matlab - 对 csv 文件中的列进行文本扫描,其中包含用于标记数据的列,分隔符问题

转载 作者:行者123 更新时间:2023-12-02 05:03:10 25 4
gpt4 key购买 nike

我正在阅读许多 csv 文件并提取第 1、6、8 和 20 列。分隔符是 '","' 因为 csv 使用双引号。除非标记了某些数据,否则这会很好用,在这种情况下,一切都会乱七八糟。数据示例:

 Date            Year    Month   Day    Flag     Min T    Flag   Max T

30/11/2007 2007 11 30 [Blank] -14.9 [Blank] -20.3

01/12/2007 2007 12 1 * -16 [Blank] -20.1

脚本读取完美直到 * 然后一切都被转移所以我得到的只是 NaN。

fid1 = fopen(File, 'r');
Date = textscan(fid1, '%q %*s %*[^\n]', 'Delimiter', ',', 'HeaderLines', 25);
fclose(fid1);
Date = datenum(Date{1, 1}, 'yyyy-mm-dd');
fid1 = fopen(File, 'r');

Data = textscan(fid1, '%*s %*s %*s %*s %f %f %*s %*s %*s %*s %*s %f %*[^\n]',
'Delimiter', '","', 'HeaderLines', 25,'treatAsEmpty', {'M', '*', 'E', 'T', 'A', 'C',
'L', 'N', 'Y', 'S', 'F'}, 'multipledelimsasone', true);
fclose(fid1);

所以我想我的问题是:

我能否使用循环对每个文件进行预格式化以删除标志,或者更改 textscan 以忽略所有标志,以便我的分隔符起作用。

感谢您的意见!

最佳答案

“标志”是星号吗?您可以使用像这样的终端命令

Date = textscan(system(['sed "s/\*//g"' File ]));

删除星号并扫描结果。

关于matlab - 对 csv 文件中的列进行文本扫描,其中包含用于标记数据的列,分隔符问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14326963/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com