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)?

2 views (last 30 days)
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.

Accepted Answer

MathWorks Support Team
MathWorks Support Team on 27 Jun 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

More Answers (0)

Products


Release

R14SP1

Community Treasure Hunt

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

Start Hunting!