How do I use sprintf to create a matrix of string and number arrays?
35 views (last 30 days)
Show older comments
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 Comments
Answers (2)
Michael Haderlein
on 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
on 27 Jul 2014
Edited: Ben11
on 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 Comments
Michael Haderlein
on 28 Jul 2014
Edited: Michael Haderlein
on 28 Jul 2014
You don't need to use a loop:
sprintf('%s\t%d\n',v{:})
See Also
Categories
Find more on Characters and Strings in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!