table / timetable - removing zero columns

5 visualizzazioni (ultimi 30 giorni)
Andy
Andy il 20 Mag 2018
Modificato: dpb il 20 Mag 2018
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?

Risposta accettata

dpb
dpb il 20 Mag 2018
Modificato: dpb il 20 Mag 2018
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
>>

Più risposte (0)

Prodotti

Community Treasure Hunt

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

Start Hunting!

Translated by