How can I use "IF" statement to prevent adding same element to an array?

9 vues (au cours des 30 derniers jours)
kiet tran
kiet tran le 15 Nov 2019
Commenté : kiet tran le 18 Nov 2019
Hello,
So I have a matrix A
A = [ 1 2 3;
2 3 4;
4 5 6]
I create another matrix B where B =[] and the element in B will be added from A. Matrix B becomes
B = [ 1 2;
2 3;
3 1;
2 3;
3 4;
4 2]
The forloop technically go through each row of A to pick the elements for each row of B. B is nx2 matrix. As we can see, "2 3" is repeated. I want to make an If statement that prevent adding existing row in B.
Please help, thank you so much.

Réponse acceptée

the cyclist
the cyclist le 15 Nov 2019
Modifié(e) : the cyclist le 15 Nov 2019
Would it be acceptable to just remove duplicated rows after-the-fact? If so, you could do
B = unique(B,'rows');
It seems likely that this would be more efficient than checking each row against all prior rows, while B is being constructed.
  5 commentaires
the cyclist
the cyclist le 15 Nov 2019
I don't know what you mean by "somewhat the same to the existing ones". So, let's be specific.
sort will take each row, and put it in ascending numerical order. Therefore the row [2 1] and the row [1 2] will both become [1 2]. That way, unique keeps only one of those rows.
kiet tran
kiet tran le 18 Nov 2019
Thank you sir, that totally works and very simple and effective.

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