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 个评论

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

请先登录,再进行评论。

回答(0 个)

类别

帮助中心File Exchange 中查找有关 Cell Arrays 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by