Removing columns containing zeros

44 views (last 30 days)
Oliver Vavasour
Oliver Vavasour on 27 Apr 2016
Answered: Andy on 20 May 2018
I have a 2x500 matrix containing data. Some columns contain only zeros and I need to remove these (forming, say, a 2x460 matrix when 40 columns contained zeros).
Similar questions have been asked and answered about cell arrays which give commands such as:
m = m(cellfun(@ischar,m(:,1)),:);
These commands produce the error 'Input #2 expected to be a cell array, was double instead' when I use my matrix in place of 'm'

Accepted Answer

Torsten
Torsten on 27 Apr 2016
m=m(:,any(m))
Best wishes
Torsten.

More Answers (1)

Andy
Andy on 20 May 2018
If you've got a table w/ various variable names that you want to keep, you might do:
function pTable = aRemoveZeroTableColumns(primersTable)
%
%
%
pTable = primersTable;
indexes = [];
for i = 1:numel(primersTable.Properties.VariableNames)
column = primersTable{:,i};
if all(column == 0)
indexes = [indexes, i];
end
end
pTable(:,indexes) = [];
end

Community Treasure Hunt

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

Start Hunting!