Separating values in cell arrays

1 Ansicht (letzte 30 Tage)
RDG
RDG am 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?

Akzeptierte Antwort

kei hin
kei hin am 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 Kommentare
kei hin
kei hin am 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 am 4 Sep. 2013
Bearbeitet: RDG am 4 Sep. 2013
Simply change the code in order to obtain the desired result,
output{i} = [1,(a{1}(n,i))];

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (1)

Andrei Bobrov
Andrei Bobrov am 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);

Kategorien

Mehr zu Matrix Indexing finden Sie in Help Center und File Exchange

Tags

Community Treasure Hunt

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

Start Hunting!

Translated by