MATLAB: Deleting Rows of a Matrix HELP

matrices

I'm trying to delete the following rows within a matrix – ones in which the second column contains a 0. Importing the text file Data.txt, which has about 2901 rows of time readings, and associated pressure readings. Some of the pressure readings are 0, and we need to delete these readings. My code gives an assignment dimension mismatch error and I have not clue why. Could someone please help me out? Thanks and here's my code:
for row = 1:length(Data)
if Data(row,2) == 0
Data(row,2) = [];
end
end

Best Answer

When you delete rows in a for loop, the indexing changes so the for loop indexing is no longer valid. Instead of using a for loop, you can use logical indexing. E.g.,
Data(Data(:,2)==0,:) = [];
The reason this line of yours was failing was because you were trying to delete only one element of the matrix, and you can't do that:
Data(row,2) = [];