How to remove <missing> from a cell array, possibly replace with blank space

Originally I imported text (mixed numeric and alphabets/strings) from a file as a table data.
Since the amount of text/data in different lines of the file is different, many of the elements in the table are NaN.
Now I want to write certain specific lines of this table to another file, but I don't want NaN to be written, instead just leave blank space there
What I tried:
fin = strcat(path_in,'/test.txt'); %input filename
file_data = readtable(fin) ; % read data from the file "fin"
bonds_text= (table2cell(file_data(191:end,:)));
bonds_text(cellfun(@isnan,bonds_text,'UniformOutput',false)) = {[]};
When I try to perform the last line operation, which is to remove NaN by a blank space, it gives me the following error:
Function 'subsindex' is not defined for values of class 'cell'.
I am attaching the file from which I am reading the data
Can you please help me fix this error, or is there another better/simpler way of doing this?
Thank you

3 Comments

Apart from the above mentioned method, I had tried the following:
bonds_text= string(table2cell(file_data(191:end,:)));
This converted cell to string, but all the NaN elements get converted to <missing>. Is there a way to replace all these <missing> by simple blank spaces while writing the file
Thanks
Thank you very much Walter.
I had actually tried doing the same earlier, and it was giving me an error, but now I corrected my mistake there.
bonds_text= fillmissing(bonds_text,'constant',''); % wrong, single quote, not a string
bonds_text= fillmissing(bonds_text,'constant',""); % correct, double quote, a string

Sign in to comment.

Answers (0)

Categories

Asked:

on 12 Jan 2019

Commented:

on 12 Jan 2019

Community Treasure Hunt

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

Start Hunting!