In a large matrix, find and provide location of rows containing zeros
2 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
Louise Wilson
le 22 Août 2019
Commenté : David Hill
le 23 Août 2019
I have a series of large matrix, 7184x72001, in which the first column is a datenum vector, and all the rows represent values for each datenum.
If a row didn't meet certain criteria, I asked my forloop to fill it with zeros. Unfortunately I didn't consider how large my matrix was and how hard it would then be to find the rows that contain zeros, if they exist. I know that in my first example, there is one row that is all zeros, excluding the datenum vector in the first column.
Is it possible to make a variable which contains the datenum value for the rows which contain zeros?
The following code, I have used to confirm that the row of zeros exist, but it doesn't tell me WHERE it is. Ideally I would get a list of datenums for the rows which are filled with zeros.
for row = 1 : size(Agoat, 1)
zeroLocations{row} = find(Agoat(row, :) == 0)
end
Thank you everyone!
2 commentaires
Réponse acceptée
David Hill
le 22 Août 2019
How about,
x=sum(Agoat(:,2:end),2);
Agoat(find(x==0),1);%answer matrix will contain all time stamps with zero rows.
3 commentaires
David Hill
le 23 Août 2019
If finds the indexes of the zero rows from the column vector x and indexes into the Agoat matrix at those indexes along the first time-stamp column to produce the datenum values of the zero rows as a column vector.
Plus de réponses (0)
Voir également
Catégories
En savoir plus sur Time Series Objects 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!