i have to write a cell which has both numbers and strings in to a text file if i use %s the numeric values are not written properly. Can any one help Thanks in advance

 Akzeptierte Antwort

Wayne King
Wayne King am 6 Nov. 2012

1 Stimme

You can use ischar() to query which elements are strings and write those properly.

4 Kommentare

Walter Roberson
Walter Roberson am 6 Nov. 2012
Expanding on this a bit: use (~cellfun(@ischar,YourArray)) to create a logical index of the numeric positions. Use cellfun() on those positions, with an appropriate function such as @sprintf, in order to format those numeric positions as strings and write them back in the cell array in the form of strings. Now you have a cell array which is only strings and you can write it out.
Sharen H
Sharen H am 6 Nov. 2012
can u please give the syntax how to work i couldnot do it
Walter Roberson
Walter Roberson am 6 Nov. 2012
Letting C be your cell array, then:
TC = C;
cellisnum = ~cellfun(@ischar, TC);
TC(cellisnum) = cellfun(@num2str, TC(cellisnum), 'UniformOutput', false);
for R = 1 : size(TC,1)
fprintf(s, '%s ', TC{R,1:end-1));
fprintf(s, '%s\n', TC{R,end});
end
Sharen H
Sharen H am 6 Nov. 2012
Thanks a lot .. Walter Roberson ...Thank u so much

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (0)

Kategorien

Tags

Community Treasure Hunt

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

Start Hunting!

Translated by