약 2GB의 대용량 텍스트 파일을 읽고 해당 데이터에 대해 일련의 작업을 수행하고 싶습니다. 접근 방식에 따라Matlab에서 RAM이 부족한 대용량 텍스트 파일 읽기
tic
fid=fopen(strcat(Name,'.dat'));
C=textscan(fid, '%d%d%f%f%f%d');
fclose(fid);
%Extract cell values
y=C{1}(1:Subsampling:end)/Subsampling;
x=C{2}(1:Subsampling:end)/Subsampling;
%...
Reflectanse=C{6}(1:Subsampling:end);
Overlap=round(Overlap/Subsampling);
실패 immediatly 내 메모리 사용량이 이상한 피크 C (C=textscan(fid, '%d%d%f%f%f%d');
)을 읽은 후 : 무엇이 크기의 파일을 가져올 수있는 가장 좋은 방법은 무엇인가요? textscan()
을 사용하여 텍스트 파일의 개별 부분을 읽는 방법이 있습니까? 아니면이 작업에 더 적합한 다른 기능이 있습니까?
편집은 다음 textscan의 모든 열은 3D-포인트에 대한 정보 필드의 정보가 포함
width hieght X Y Z Grayscale
345 453 3.422 53.435 0.234 200
346 453 3.545 52.345 0.239 200
... % and so on for ~40 millon points
한 번에 한 줄씩 데이터를 읽고 처리 할 수 있습니까? – Ayb4btu
한 번에 한 행을 처리 할 수 있지만 단일 행/열을 읽는 데 textscan()을 사용하는 방법을 모르겠습니다. – McMa
텍스트 파일의 몇 줄을 게시하여 textscan의 작동 방식을 더 잘 이해할 수 있습니까? 작동합니다. – Ayb4btu