How do I use sprintf to create a matrix of string and number arrays?
31 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
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.
0 Kommentare
Antworten (2)
Michael Haderlein
am 25 Jul. 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
Ben11
am 27 Jul. 2014
Bearbeitet: Ben11
am 27 Jul. 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 Kommentare
Michael Haderlein
am 28 Jul. 2014
Bearbeitet: Michael Haderlein
am 28 Jul. 2014
You don't need to use a loop:
sprintf('%s\t%d\n',v{:})
Siehe auch
Kategorien
Mehr zu Characters and Strings finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!