Why does readmatrix return empty matrix if text file contains quotes?
Ältere Kommentare anzeigen
Function readmatrix fails to read data from text file when it contains quotes. Why? How to make readmatrix working?
Extended example:
let first text.txt be:
header1
header2
1
2
3
footer
then
readmatrix('text.txt', 'Range', [3 1 5 1])
gives usual vector [1;2;3].
But whe text.txt is like this:
"
header2
1
2
3
"
readmatrix returns empty vector while dlmread works fine.
How to force readmatrix ignore quotes?
3 Kommentare
the cyclist
am 15 Mai 2024
It would be better to upload the two different text files (using the paperclip icon in the INSERT section of the toolbar), rather than relying on users to transcribe them to reproduce your files.
Stephen23
am 15 Mai 2024
"Function readmatrix fails to read data from text file when it contains quotes. Why?"
Because double quotes indicate that everything until the next double quote are considered to be one text string. So your sample file consists of exactly one field with some text in it. This is a basic feature of delimited text files (e.g. CSV).
Konstantin
am 16 Mai 2024
Antworten (1)
Cris LaPierre
am 15 Mai 2024
1 Stimme
readmatrix is trying to guess what the file format is. However it is doing that, it appears to not handle this specific configuation as you might expect. My suspicion is that it is treating everything between the 2 quotes as strings, and readmatrix ignores strings.
You might want to consider reporting this here:
1 Kommentar
Following up, I do not know of a way around this with readmatrix. However, this code seems to be able to import the file with quotes correctly using readtable.
T = readtable('test_quotes.txt','Format','%f','numHeaderLines',2,'readVariableNames',false,'Whitespace','"');
T2 = table2array(T)
Kategorien
Mehr zu Text Files finden Sie in Hilfe-Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!