Alias blanks in the cell array as a string.
Show older comments
I am using the ‘importdata’ function to read a text file. It reads the numeric data as a matrix and text data as a cell array; now the first element of cell array is all the headers, I use a ‘strsplit’ function to separate each individual variable name in header. The issue is that there are some blank columns in the text file, so the numeric matrix reads it as a ‘NaN’ but the resulting variables (which I used ‘strsplit’ for) eliminates blanks. Now the result is that size(textdata,2) +size(data,2) is not equal to size(variable,2). I want to read blanks in the header as a variable, alias it as ‘empty’

5 Comments
Viraj Sabane
on 31 Jan 2025
Edited: Walter Roberson
on 31 Jan 2025
Viraj Sabane
on 31 Jan 2025
dpb
on 31 Jan 2025
"I am using the ‘importdata’ function to read a text file..."
There's the root problem. importdata, while handy from a simple syntax standpoint tends to create more trouble than it solves as you discovered. I'd recommend using readtable instead and you'll have both variables handled by name by their proper type in a single table variable. You can customize how things are imported regarding the missing columns per your requirements with either some additional named variable options or by the use of an import object via detectImportOptions
Stephen23
on 31 Jan 2025
I second dpb's comment: avoid IMPORTDATA, use READTABLE or TEXTSCAN or the like.
Viraj Sabane
on 3 Feb 2025
Accepted Answer
More Answers (1)
Viraj Sabane
on 16 Feb 2025
0 votes
Categories
Find more on Data Import and Export in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!
