How do I delete empty rows in a matrix?

조회 수: 4 (최근 30일)
Franchesca
Franchesca 2014년 5월 14일
댓글: Honglei Chen 2014년 5월 14일
%% Combine the data %combined = [6050,54]% define size of combined
SWOA = zeros(100,5); CWOA = zeros(100,5); SWA = zeros(100,5); CWA = zeros(100,5);
for i = 8:length(mydata)%loop to group data together into jump types
if grouped(i,4) == 1 % if data = 1 put in squat without arms
SWOA(i,1) = grouped(i,1);
else if grouped(i,4) == 2 % if data = 2 put in counter without arms
CWOA(i,1) = grouped(i,1);
else if grouped(i,4) == 3 % if data = 3 put in squat with arms
SWA(i,1) = grouped(i,1);
else if grouped(i,4) == 4 % if data = 4 put in counter with arms
CWA(i,1) = grouped(i,1);
else if grouped(i,4)== 0
continue
end
end
end
end
end
end
emptyCells = cellfun('isempty', SWOA);
SWOA(all(emptyCells,2),:) = []
In the variable SWOA for example it looks like this:
I am trying to delete all rows that have 0's in so that I am left with only about 5 or 6 rows of data that can be processed, how would I do this?

채택된 답변

Honglei Chen
Honglei Chen 2014년 5월 14일
CWOA(all(CWOA==0,2),:)=[]
  댓글 수: 2
Franchesca
Franchesca 2014년 5월 14일
does this replace these lines:
emptyCells = cellfun('isempty', SWOA);
SWOA(all(emptyCells,2),:) = []
Thank you
Honglei Chen
Honglei Chen 2014년 5월 14일
These are slightly different. Your code works for cells, and it is indeed looking for empty cells. But empty cell is different than a matrix that has all zeros. My code for the latter.
Your code would work for things like
x = cell(2,3)
x(2,3) = {1}
It will remove the first row

댓글을 달려면 로그인하십시오.

추가 답변 (0개)

카테고리

Help CenterFile Exchange에서 Data Type Conversion에 대해 자세히 알아보기

Community Treasure Hunt

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

Start Hunting!

Translated by