Separating values in cell arrays

1 view (last 30 days)
RDG
RDG on 4 Sep 2013
Suppose, I have a cell array as follow:
a{1}=[2 3]
I would like to separate the values into two distinct values but at the same time, I want to add a value (in this case ‘1’) to a new column. The output should reflect something like this.
output{1}=[1 2]
output{2}=[1 3]
How can I go about this besides using for loop?

Accepted Answer

kei hin
kei hin on 4 Sep 2013
Try this
a{1}=[2 3];
[row,col] = size(a{1});
for i = 1:col
for n = 1:row
output{i} = ['1 ',num2str(a{1}(n,i))];
end
end
  3 Comments
kei hin
kei hin on 4 Sep 2013
a{1}=[2 3];
[row,col] = size(a{1});
for i = 1:col
for n = 1:row
output{i} = [1 ,a{1}(n,i)];
end
end
RDG
RDG on 4 Sep 2013
Edited: RDG on 4 Sep 2013
Simply change the code in order to obtain the desired result,
output{i} = [1,(a{1}(n,i))];

Sign in to comment.

More Answers (1)

Andrei Bobrov
Andrei Bobrov on 4 Sep 2013
a = arrayfun(@(x)randi(20,1,randi([2 4])),1:5,'un',0); % Let your data
n = cellfun('length',a);
x = zeros(sum(n),2);
x(cumsum(n)-n+1,1) = 1;
x = cumsum(x);
x(:,2) = [a{:}]';
output = num2cell(x,2);

Categories

Find more on Matrices and Arrays in Help Center and File Exchange

Tags

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!