将.txt文件中的数据读入Matlab

将.txt文件中的数据读入Matlab,matlab,pari,Matlab,Pari,几天来,我一直在徒劳地尝试做一件看似简单的事情——我想从一个.txt文件中读取如下所示的数据: 0.221351321 0.151351321 0.235165165 8.2254546 E-7 进入Matlab。我已经能够使用fscanf命令将.txt文件中的数据作为列向量加载,如下所示: U=fscanf(FileID, '%e') 前提是我首先浏览文件,并在数据集中出现科学符号的地方删除“E”之前的空格 因为我必须生成大量这样的集合,所以必须搜索

几天来,我一直在徒劳地尝试做一件看似简单的事情——我想从一个.txt文件中读取如下所示的数据:

    0.221351321
    0.151351321
    0.235165165
    8.2254546 E-7
进入Matlab。我已经能够使用fscanf命令将.txt文件中的数据作为列向量加载,如下所示:

    U=fscanf(FileID, '%e')
前提是我首先浏览文件,并在数据集中出现科学符号的地方删除“E”之前的空格

因为我必须生成大量这样的集合,所以必须搜索并替换每个.txt文件是不切实际的

matlab有没有一种方法可以读取上面示例中显示的数据(在“E”前面加空格),并将其放入列向量中

对于任何了解PARI-GP的人来说,另一种解决方法是首先让输出没有空格——但到目前为止,我还没有找到一种方法来擦除科学记数法中“E”之前的空格,我无法预测科学记数法中的数字是否会出现在数据集中


谢谢大家!

一种可能不是最好的简单方法是逐行读取,删除空格并转换回浮点数

比如说,

x = []
tline = fgetl(FileID);
while ischar(tline)
    x = [x str2num(tline(find(~isspace(tline))))]
    tline = fgetl(FileID);
end
一艘班轮:

data = str2double(strsplit(strrep(fileread('filename.txt'),' ',''), '\n'));

strrep
删除所有空格,
strsplit
将每一行作为单独的字符串,并且
str2double
将字符串转换为数字。

谢谢大家的帮助,我找到了解决方案。有一种方法可以消除PARI-GP中的空格,这样输出的.txt文件就没有空格了。我将输出设置为“prettymatrix”。需要输入以下内容:

    ? \o{0}
将输出更改为“Raw”,这消除了科学记数法中“E”之前的空格


再次感谢你的帮助

感谢您的及时回复!谢谢你的回复!我现在正在尝试你的修复。我相信它会工作,而且它似乎工作,如果我应用它的文件更小——它有十亿行!