In a large matrix, find and provide location of rows containing zeros
10 次查看(过去 30 天)
显示 更早的评论
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 个评论
采纳的回答
David Hill
2019-8-22
How about,
x=sum(Agoat(:,2:end),2);
Agoat(find(x==0),1);%answer matrix will contain all time stamps with zero rows.
3 个评论
David Hill
2019-8-23
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.
更多回答(0 个)
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Time Series Objects 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!