Why does DLMREAD return a column vector when I used DLMWRITE to create an ASCII-delimited file with a row vector in MATLAB 7.1 (R14SP3)?
6 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
I used DLMWRITE to write a large (> 100,000 elements) row vector to a tab-delimited ASCII file. When I read it back into MATLAB with DLMREAD, it is read as a column vector. This also happens when using TEXTSCAN.
Respuesta aceptada
MathWorks Support Team
el 27 de Jun. de 2009
This is the expected behavior in MATLAB 7.1 (R14SP3). DLMREAD calls TEXTSCAN, which has a current limit of 100,000. Thus, a single line with more than 100,000 fields is read in as a column, instead of a row by TEXTSCAN. This allows TEXTSCAN to use a single cell holding an array as opposed to a large cell array, thereby providing improvements in memory and hence speed.
To work around this issue, use the data Import Wizard or the LOAD command with the following syntax:
load -ascii filename.dat
0 comentarios
Más respuestas (0)
Ver también
Categorías
Más información sobre Text Files en Help Center y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!