# In a large matrix, find and provide location of rows containing zeros

9 views (last 30 days)
Louise Wilson on 22 Aug 2019
Commented: David Hill on 23 Aug 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 CommentsShowHide 1 older comment
Louise Wilson on 22 Aug 2019
Hi Ted, thanks for response! The first column in every row has a datenumber, so I am trying to find where row 2:n(rows) will be 0. And then, get the value in the first column for that row. Does it make sense?

David Hill on 22 Aug 2019
x=sum(Agoat(:,2:end),2);
Agoat(find(x==0),1);%answer matrix will contain all time stamps with zero rows.
David Hill on 23 Aug 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.

R2018b

### Community Treasure Hunt

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

Start Hunting!

Translated by