Clear Filters
Clear Filters

How to delete columns of a matrix that have fewer than 3 non-zero elements

3 views (last 30 days)
Hello,
How can I delete columns of a matrix that have fewer than 3 non-zero elements? Thank you!
  4 Comments
osminbas
osminbas on 1 Mar 2012
I can define it as matrix A is 5x5. Say two columns (column 1 and 3) have only 2 non-zero elements.

Sign in to comment.

Accepted Answer

Wayne King
Wayne King on 1 Mar 2012
Hi, I'm sure this isn't the most efficient way:
x =[
5 0 1 4 1
3 0 0 2 1
1 0 2 2 4
4 3 0 2 3
4 2 0 1 3];
for nn =1:size(x,2)
numz(nn) = length(find(x(:,nn)==0));
end
x(:,numz>2) = [];
  1 Comment
osminbas
osminbas on 1 Mar 2012
Actually I did this:
for nn =1:size(x,2)
numz(nn)=length(find(x(:,nn)~=0));
end
x(:,numz<3)=[];
It worked! Thank you!

Sign in to comment.

More Answers (0)

Categories

Find more on Creating and Concatenating Matrices in Help Center and File Exchange

Tags

Community Treasure Hunt

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

Start Hunting!