Removing columns containing zeros

15 vues (au cours des 30 derniers jours)
Oliver Vavasour
Oliver Vavasour le 27 Avr 2016
Réponse apportée : Andy le 20 Mai 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'

Réponse acceptée

Torsten
Torsten le 27 Avr 2016
m=m(:,any(m))
Best wishes
Torsten.
  1 commentaire
Oliver Vavasour
Oliver Vavasour le 27 Avr 2016
Perfect solution, thank you

Connectez-vous pour commenter.

Plus de réponses (1)

Andy
Andy le 20 Mai 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

Catégories

En savoir plus sur Creating and Concatenating Matrices dans Help Center et File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by