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

35 views (last 30 days)
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.

Answers (2)

Michael Haderlein
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
  1 Comment
Neha
Neha on 25 Jul 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.

Sign in to comment.


Ben11
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'

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!