Effacer les filtres
Effacer les filtres

Separating values in cell arrays

1 vue (au cours des 30 derniers jours)
RDG
RDG le 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?

Réponse acceptée

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

Connectez-vous pour commenter.

Plus de réponses (1)

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

Catégories

En savoir plus sur Matrices and Arrays dans Help Center et File Exchange

Tags

Community Treasure Hunt

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

Start Hunting!

Translated by