How to put cell array in sprintf?
Afficher commentaires plus anciens
Data is in cell array: {1,2,3,4,5} sprintf('%d,%d,%d,%d,%d ',???);
Réponse acceptée
Plus de réponses (3)
Dasharath Gulvady
le 29 Mai 2015
1 vote
a={1,2,3,4,5};
sprintf('%d,%d,%d,%d,%d',a{:});
Doug
le 29 Mai 2015
0 votes
mycell = {1,2,3,4,5};
s = sprintf('%d%d%d%d%d', mycell{:})
Jan Siegmund
le 25 Août 2020
Modifié(e) : Jan Siegmund
le 31 Août 2020
If using multiple different cells:
%% Edited
% var = {'a','b','c','d','e'};
% num = {1,2,3,4,5};
% s = strjoin(cellfun(@(v,n)sprintf('%s = %d',v,n),var,num,'UniformOutput',false),'; ');
Stephen's comment for a proper solution
2 commentaires
Stephen23
le 25 Août 2020
Simpler and more efficient:
>> tmp = [var;num];
>> fprintf('%s = %d\n',tmp{:})
a = 1
b = 2
c = 3
d = 4
e = 5
Jan Siegmund
le 31 Août 2020
Modifié(e) : Jan Siegmund
le 31 Août 2020
Oh, when sprintf and fprintf reported:
>> s = sprintf('%s = %d\n',var,num)
Error using sprintf
Function is not defined for 'cell' inputs.
I thougth sprintf and fprintf were not defined for cell arrays.
Edited: (And I did not think about the cell unpacking {:}
Anyways, yours is definitely the better solution!
Catégories
En savoir plus sur Characters and Strings dans Centre d'aide et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!