How to put cell array in sprintf?
    35 visualizaciones (últimos 30 días)
  
       Mostrar comentarios más antiguos
    
    Mr M.
      
 el 26 de Mayo de 2015
  
    
    
    
    
    Editada: Jan Siegmund
      
 el 31 de Ag. de 2020
            Data is in cell array: {1,2,3,4,5} sprintf('%d,%d,%d,%d,%d ',???);
0 comentarios
Respuesta aceptada
  Jos (10584)
      
      
 el 29 de Mayo de 2015
        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{:})
0 comentarios
Más respuestas (3)
  Dasharath Gulvady
    
 el 29 de Mayo de 2015
         a={1,2,3,4,5};
 sprintf('%d,%d,%d,%d,%d',a{:});
          0 comentarios
  Jan Siegmund
      
 el 25 de Ag. de 2020
        
      Editada: Jan Siegmund
      
 el 31 de Ag. de 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 comentarios
  Stephen23
      
      
 el 25 de Ag. de 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
      
 el 31 de Ag. de 2020
				
      Editada: Jan Siegmund
      
 el 31 de Ag. de 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! 
Ver también
Categorías
				Más información sobre Characters and Strings en Help Center y File Exchange.
			
	Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!





