Select elements in a cell array

20 visualizzazioni (ultimi 30 giorni)
Daniele Testori
Daniele Testori il 3 Nov 2015
Hi, I have a cell array that is sized 1x31 and each element is Nx7, N changes in every cell. I have an array with the maximum of the 4th column of each cell, now I want to extract in a new cell array (always 1X31) all the rows and colums of each cell which elements of the fourth column of the cell (i) are the same of max (i) For example:
% A is the vector of the maximun elements
A=[2 3 4];
% B is my cell array of 3 cells
B=[1 2 3 [7 3 4 [1 4 5
4 5 6 3 2 1] 2 4 6
1 2 3] 3 4 7]
%I would like my result C would be a cell array that selects the elements of the matrix which second column is igual to corresponding maximum
C=[1 2 3 [7 3 4] [1 4 5
1 2 3] 2 4 6
3 4 7]
Thank everyone for helping

Risposta accettata

Stephen23
Stephen23 il 3 Nov 2015
Modificato: Stephen23 il 3 Nov 2015
A = [2,3,4];
B = {[1,2,3;4,5,6;1,2,3], [7,3,4;3,2,1], [1,4,5;2,4,6;3,4,7]};
C = {};
for k = numel(B):-1:1
C{k} = B{k}(A(k)==B{k}(:,2),:);
end
creates this output cell array C:
>> C{:}
ans =
1 2 3
1 2 3
ans =
7 3 4
ans =
1 4 5
2 4 6
3 4 7

Più risposte (0)

Categorie

Scopri di più su Cell Arrays in Help Center e File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by