function data = readData( fileName )
% FILE size is less than 200M
filename = fopen( fileName )
dataIn = textread( filename, '%s' )';
len = numel(dataIn);
k = 1;
dataIn = hex2dec( dataIn );
for i = 1 : 2 : len - 1
data(k) = dataIn( i ) + dataIn(i + 1) * 2^8;
k = k + 1;
fclose(filename);
小结:实际测试中最大读取过300M的文本文件,
2 textscan函数
C = textscan(fileID, formatSpec)
C = textscan(fileID, formatSpec, N)
C = textscan(chr, formatSpec)
C = textscan(chr, formatSpec, N)
C = textscan(…, Name, Value)
[ C, position ] = textscan( … )
C = textscan(fileID, formatSpec) 将已打开的文本文件中的数据读取到元胞数组 C。该文本文件由文件标识符 fileID 指示。使用 fopen 可打开文件并获取 fileID 值。完成文件读取后,请调用 fclose( fileID ) 来关闭文件。
textscan 尝试将文件中的数据与 formatSpec 中的转换设定符匹配。textscan 函数在整个文件中按 formatSpec 重复扫描数据,直至 formatSpec 找不到匹配的数据时才停止。
示例
C = textscan(fileID, formatSpec, N) 按 formatSpec 读取文件数据 N 次,其中 N 是一个正整数。要在 N 个周期后从文件读取其他数据,请使用原 fileID 再次调用 textscan 进行扫描。如果通过调用具有相同文件标识符 ( fileID ) 的 textscan 恢复文件的文本扫描,则 textscan 将在上次终止读取的点处自动恢复读取。
示例
C = textscan(chr, formatSpec) 将字符向量 chr 中的文本读取到元胞数组 C 中。从字符向量读取文本时,对 textscan 的每一次重复调用都会从开头位置重新开始扫描。要从上次位置重新开始扫描,需要指定 position 输出参数。
textscan 尝试将字符向量 chr 中的数据与 formatSpec 中指定的格式匹配。
C = textscan(chr, formatSpec, N) 按 formatSpec N 次,其中 N 是一个正整数。
示例
C = textscan(…, Name, Value) 使用一个或多个 Name, Value 对组参数以及上述语法中的任何输入参数来指定选项。
示例
[ C, position ] = textscan( ) 在扫描结束时返回文件或字符向量中的位置作为第二个输出参数。对于文件,该值等同于调用 textscan 后再运行 ftell( fileID ) 所返回的值。对于字符向量,position 指示 textscan 读取了多少个字符。
filename = fopen( 'object.txt' );
format = '%s';
M = 512;
N = 640;
N1 = 1280;
img = zeros(M, N1);
file = textscan(filename, repmat(format, [1 N1]), M);
for i = 1 : N1
temp = cell2mat(file{i});
temp = hex2dec(temp);
img(:,i) = temp;
k = 1;
Img = zeros(1, M*N);
for i = 1 : M
for j = 1 : 2: N1
Img(k) = img(i, j) + img(i, j+1) * 2^8;
k = k + 1;
Img = reshape( Img, [N M] )';
figure, imshow(Img, [ ]);
MATLAB如何读取大文本文件分析–读大文本关键函数–:textread, textscan1 textread函数语法:[A, B, C, …] = textread(filename, format) [A, B, C, …] = textread(filename, format, N) […] = textread(…, param, val...
y=importdata('path\ file name.txt');
可以看出,这个封装好的函数,只要给定文件的路径及文件名就可以顺利成为我们所需的数据。但是,当文件大小超过百M时,这个方法就显得吃力,耗时过久。于是返璞归真,引入“textscan”
其格式如下:
mFID = fopen
学习任务要求根据眼动信息画图,之前测试只能通过一张图片的对应信息画一张图,但由于眼动数据过多,且存储在一个txt文件中,故需要方法实现对txt文件的批量切割,每一份分到一个单独的txt文件中,对其进行重新命名。
切割txt文件的函数如下:
function splitFile(txtFile)
fid = fopen(txtFile, 'r');
global start;%global声明全局变量
start = 0;
trialCount = 1;
用notepad++,200M的文件打开问题不大,notepad++的打开上限估计为500M, 600M的打不开,400M的可以1 2;
直接把大容量txt拖到浏览器,只是作为显示只读;
linux的文本查看可以查看,只不过打开速度会比...
MATLAB提供了多种方式从磁盘读入文件或将数据输入到工作空间,即读取数据,又叫导入数据;将工作空间的变量存储到磁盘文件中称为存写数据,又叫导出数据。至于选择哪种机制,则根据下面两个因素决定:
● 用户所执行的操作是导入数据还是导出数据;
● 数据的格式为文本格
其中,`filename.txt`是你要读取的txt文件名,需要将其替换为实际的文件名。
3. 运行脚本文件,Matlab会自动读取txt文件中的数据,并将其存储在`data`变量中。
注意:在读取txt文件时,需要保证文件路径正确,并且文件中的数据格式与Matlab中的数据类型相匹配。