Version 7.00 (32.9 KB) by Andres
fast and versatile ascii data import capable of handling large text files
Updated 25 Oct 2021

View License

As txt2mat basically is a wrapper for sscanf, it quickly converts ascii files containing m-by-n numeric data, allowing for header lines. When encountering rows with different numbers of data elements, it will work line-by-line and thus slow down somewhat.
You may let txtmat carry out an automatic data layout analysis on comparatively 'simple' text files (header lines + decimal number data with common delimiters). By this analysis it is able to directly import most numeric .csv-files, for instance.
As txt2mat can perform string and regular expression replacements before the numeric conversion, it can cope with many irregularities within the data. By that it is also capable of detecting and handling commas as decimal characters (common german notation).
You can filter lines by keywords, skip lines by line number, provide appropriate format strings (as for sscanf), or split up the import process for huge files if you encounter memory problems.
You may also use the above to simply read the manipulated text into a character vector or to put each line into a separate cell or string vector element without the numeric conversion.
txt2mat should work on Matlab R2016b and newer versions.
Comments and suggestions welcome.

Cite As

Andres (2024). txt2mat (https://www.mathworks.com/matlabcentral/fileexchange/18430-txt2mat), MATLAB Central File Exchange. Retrieved .

MATLAB Release Compatibility
Created with R2021a
Compatible with R2016b and later releases
Platform Compatibility
Windows macOS Linux
Find more on Low-Level File I/O in Help Center and MATLAB Answers

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!
Version Published Release Notes

· general compatibility with strings (string scalar as file name etc.)
· new read mode 'string'

more specific input argument checking for ReadMode (comment from T A) and NumericType

another fix for header line number bug and read mode "line"

fix for header line number bug reported by valere demeter

v06.60 · added option to select lines by line number ('SelectLineFun'), e.g. to skip every n-th line as suggested by Kaare · reduced memory footprint and improved speed during good/bad line filtering by working in chunks

v06.40 · better input argument check by inputparser, allowing input struct · minor changes in code and documentation

v06.17.3 · new read modes 'char' and 'cell' to provide txt2mat's preprocessing without numerical conversion · enable 'good line' filtering during file analysis · better version detection, (hopefully) suitable for MCR (thanks to Len for his remark)

v06.12 · added line filter as requested by Val Schmidt

v06.04 · better handling of replacement strings containing line breaks (initiated by DS) · allow '*' wildcard in file name

v06.01 · fixed bug: possible error message in file analysis when only header line number is given

v06.00 · introduction of read mode 'block' · 'MemPar' buffer value changed to scalar · reduced memory demand · modified help