Effacer les filtres
Effacer les filtres

filtering a cell array according to a matrix

1 vue (au cours des 30 derniers jours)
AA
AA le 8 Oct 2015
Commenté : Star Strider le 8 Oct 2015
Imagine these two variables 'a' and 'b'. I want to filter the matrices in cell array 'b'. The matrices in cell array 'b' have 7 columns. The rows of every number in column 5 to 7 of the matrices in cell array 'b' that match the numbers in matrix 'a' should be recorded in a new variable c with the only exception that column 5 to 7 are deleted and only column 1 to 4 are recorded. How can I put a code for this?
a=rand(18,1)
b={rand(1877958,7); rand(1251972,7)};

Réponse acceptée

Star Strider
Star Strider le 8 Oct 2015
Random numbers are, well, random, so there is no match (using rand), and I can only say that this code runs. I will leave it to you to test it in your actual application:
a=rand(18,1);
b={rand(1877958,7); rand(1251972,7)};
db = cell2mat(b); % Double Matrices Are Easier To Work With
b57 = db(:,5:7);
Lia = ismember(b57,a);
idx = find(sum(Lia,2)); % Row Indices Of ‘b’ Where ‘b57’ & ‘a’ Match
c = db(idx,1:4) % Desired Output (As I Read The Question)
  2 commentaires
AA
AA le 8 Oct 2015
thanks, it worked. i modified it a bit
for x = 1:100
for y = 1:61
Lia = ismember(dateshalf{x,y},ans);
idx = find(sum(Lia,2)); % Row Indices Of ‘b’ Where ‘b57’ & ‘a’ Match
Liaa{x,y}=idx;
qq{x,y} = q{x,y}(Liaa{x,y},1:60); % Desired Output (As I Read The Question)
end
end
Star Strider
Star Strider le 8 Oct 2015
My pleasure!

Connectez-vous pour commenter.

Plus de réponses (0)

Catégories

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

Community Treasure Hunt

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

Start Hunting!

Translated by