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

 Réponse acceptée

Wayne King
Wayne King le 6 Nov 2012

1 vote

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

4 commentaires

Walter Roberson
Walter Roberson le 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 le 6 Nov 2012
can u please give the syntax how to work i couldnot do it
Walter Roberson
Walter Roberson le 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 le 6 Nov 2012
Thanks a lot .. Walter Roberson ...Thank u so much

Connectez-vous pour commenter.

Plus de réponses (0)

Catégories

En savoir plus sur Characters and Strings dans Centre d'aide et File Exchange

Tags

Community Treasure Hunt

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

Start Hunting!

Translated by