Réponse acceptée

Jos (10584)
Jos (10584) le 29 Mai 2015

0 votes

Use comma-separated list expansion. And you need to specify the format only once (see help fprintf)
A = {1 2 3 4}
sprintf('%d ',A{:})

Plus de réponses (3)

Dasharath Gulvady
Dasharath Gulvady le 29 Mai 2015

1 vote

 a={1,2,3,4,5};
 sprintf('%d,%d,%d,%d,%d',a{:});
Doug
Doug le 29 Mai 2015

0 votes

mycell = {1,2,3,4,5};
s = sprintf('%d%d%d%d%d', mycell{:})
Jan Siegmund
Jan Siegmund le 25 Août 2020
Modifié(e) : Jan Siegmund le 31 Août 2020

0 votes

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

Simpler and more efficient:
>> tmp = [var;num];
>> fprintf('%s = %d\n',tmp{:})
a = 1
b = 2
c = 3
d = 4
e = 5
Jan Siegmund
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!

Connectez-vous pour commenter.

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!

Translated by