Delete/remove entire rows and columns containing an element that satisfies a condition (e.g. when the element is an imaginary number)

8 vues (au cours des 30 derniers jours)
In an array containing elements that are imaginary numbers, how can I remove the entire row(s) and column(s) containing any of these numbers?

Réponse acceptée

Jonas
Jonas le 16 Juil 2021
Modifié(e) : Jonas le 16 Juil 2021
where=yourMatrix==yourCondition;
yourMatrix(any(where,2),:)=[];
yourMatrix(:,any(where,1))=[];
or
[row,col]=find(where);
yourMatrix(row,:)=[];
yourMatrix(:,col)=[];
if your condition being a complex number you can use where=~isreal(yourMatrix)

Plus de réponses (1)

Walter Roberson
Walter Roberson le 16 Juil 2021
valgood = imag(YourMatrix)==0;
rowmask = all(valgood,2);
colmask = all(valgood,1);
newMatrix = YourMatrix(rowmask, colmask);

Catégories

En savoir plus sur Multidimensional Arrays dans Help Center et File Exchange

Produits

Community Treasure Hunt

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

Start Hunting!

Translated by