table / timetable - removing zero columns

My answer is:
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
Is there a shorter solution?

 Akzeptierte Antwort

dpb
dpb am 20 Mai 2018
Bearbeitet: dpb am 20 Mai 2018

0 Stimmen

Presuming since you're comparing all to zero, that all elements of the table are numeric, then simply
pTable=primersTable(:,~all(primersTable{:,:}==0));
will do the dirty...simple example--
>> t=table(zeros(5,1),rand(5,1),zeros(5,1)); % sample table w/ zero columns
>> t(:,~all(t{:,:}==0))
ans =
5×1 table
Var2
_______
0.54
0.93709
0.66096
0.39466
0.25899
>>

Weitere Antworten (0)

Kategorien

Produkte

Gefragt:

am 20 Mai 2018

Bearbeitet:

dpb
am 20 Mai 2018

Community Treasure Hunt

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

Start Hunting!

Translated by