table / timetable - removing zero columns

5 Ansichten (letzte 30 Tage)
Andy
Andy am 20 Mai 2018
Bearbeitet: dpb am 20 Mai 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?

Akzeptierte Antwort

dpb
dpb am 20 Mai 2018
Bearbeitet: dpb am 20 Mai 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
>>

Weitere Antworten (0)

Kategorien

Mehr zu Matrix Indexing finden Sie in Help Center und File Exchange

Produkte

Community Treasure Hunt

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

Start Hunting!

Translated by