How do I use sprintf to create a matrix of string and number arrays?

33 visualizaciones (últimos 30 días)
Neha
Neha el 25 de Jul. de 2014
Comentada: Ben11 el 28 de Jul. de 2014
Here is an example of the data I want to output using sprintf
a = {'abea','b','c'}
b=[1 2 3]
How do I get it so the output is out =
abea 1
b 2
c 3
the variables a and b may be any length.

Respuestas (2)

Michael Haderlein
Michael Haderlein el 25 de Jul. de 2014
In such cases, I use
>> v=[a;num2cell(b)]
v =
'abea' 'b' 'c'
[ 1] [2] [3]
>> sprintf('%s %d ',v{:})
ans =
abea 1 b 2 c 3
  1 comentario
Neha
Neha el 25 de Jul. de 2014
sorry, I mean for the question to be getting an output of
abea 1
b 2
c 3
And between each column there should be a tab.

Iniciar sesión para comentar.


Ben11
Ben11 el 27 de Jul. de 2014
Editada: Ben11 el 27 de Jul. de 2014
Following on Michael's answer, what if you try this:
clear
clc
a = {'abea','b','c'};
b = [1 2 3];
b_cell = num2cell(b);
OutCell = cell(size(a,2),1);
for k = 1:size(a,2)
OutCell{k} = sprintf('%s %s',a{k},num2str(b_cell{k}));
end
disp(OutCell)
which gives this:
'abea 1'
'b 2'
'c 3'
  2 comentarios
Michael Haderlein
Michael Haderlein el 28 de Jul. de 2014
Editada: Michael Haderlein el 28 de Jul. de 2014
You don't need to use a loop:
sprintf('%s\t%d\n',v{:})
Ben11
Ben11 el 28 de Jul. de 2014
oh yes you're right thanks!

Iniciar sesión para comentar.

Categorías

Más información sobre Logical 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!

Translated by