将大文本文件导入matlab而不切割它
Import big txt file into matlab without cutting it
我有一个大小为 40000 x 40000 的文本文件,例如名为“名称”,第一行和第一列是标签,所有其他数字都是十进制数。
我需要在没有标签的情况下将其保存到matlab中的mat文件中,这意味着没有第一行和第一列。
我试过以下方法:
data = importdata('Name.txt') ; %
save data.mat -v7.3
但是,我得到的数据只有 590 x 590 ,这意味着它只是文件中数据的一部分。
如何在 matlab 中将整个数据保存到 mat 文件中?
编辑
我也试过这种方法:
M = readmatrix('Name.txt');
M(:,1) = [];
它读取了所有行数 40000,但列数一直读取到 587 !!
首先你应该找出错误发生的地方。您的数据读取正确吗?
以下解决方案在任何情况下都应该有效:
fID = fopen('Name.txt');
headerline = fgetl(fID);
C = textscan(fID,['%s' repmat('%f', 1, 40000)], 'Delimiter', '\r');
dMat = [C{2:end}];
save('Data.mat', 'dMat' , '-v7.3')
如果这不起作用,您可以随时尝试通过以下方式读取数据:
T = readtable('Name.txt')
然后查看结果 table。
我有一个大小为 40000 x 40000 的文本文件,例如名为“名称”,第一行和第一列是标签,所有其他数字都是十进制数。 我需要在没有标签的情况下将其保存到matlab中的mat文件中,这意味着没有第一行和第一列。
我试过以下方法:
data = importdata('Name.txt') ; %
save data.mat -v7.3
但是,我得到的数据只有 590 x 590 ,这意味着它只是文件中数据的一部分。
如何在 matlab 中将整个数据保存到 mat 文件中?
编辑
我也试过这种方法:
M = readmatrix('Name.txt');
M(:,1) = [];
它读取了所有行数 40000,但列数一直读取到 587 !!
首先你应该找出错误发生的地方。您的数据读取正确吗? 以下解决方案在任何情况下都应该有效:
fID = fopen('Name.txt');
headerline = fgetl(fID);
C = textscan(fID,['%s' repmat('%f', 1, 40000)], 'Delimiter', '\r');
dMat = [C{2:end}];
save('Data.mat', 'dMat' , '-v7.3')
如果这不起作用,您可以随时尝试通过以下方式读取数据:
T = readtable('Name.txt')
然后查看结果 table。