Filter löschen
Filter löschen

Sorting and collecting data from arrays

2 Ansichten (letzte 30 Tage)
oli8819
oli8819 am 7 Jun. 2013
I have two columns which contain data and I am struggling to figure out how you could design code to run through the matrix and select the groups of numbers with their corrsposning 2nd column number.
For example a matrix has to 2 columns and 10 rows and each number out of the first coulmn has its corrosponding number out of the second column.
What I want to do is to take all the 1's and their corrspronding value in the 2nd column and put them into a seperate matrix, and then take all the 2's with there corrsponding values and put them into a matrix and so...
A(:,1)=[1; 1; 1; 1; 2; 2; 2; 2; 3; 3]
A(:,2)=[9; 4; 6; 3; 6; 7; 6; 4; 9; 4]
Any help would be great cheers!

Akzeptierte Antwort

Iain
Iain am 7 Jun. 2013
range = unique(A(:,1));
for i = 1:numel(range)
collection{i} = A(range(i) == A(:,1),2);
end

Weitere Antworten (1)

Azzi Abdelmalek
Azzi Abdelmalek am 7 Jun. 2013
Bearbeitet: Azzi Abdelmalek am 7 Jun. 2013
out=arrayfun(@(x) A(find(A(:,1)==x),:),unique(A(:,1)),'un',0)
% the result
out{1}
out{2}
out{3}

Kategorien

Mehr zu Matrices and Arrays finden Sie in Help Center und File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by