table / timetable - removing zero columns

5 visualizaciones (últimos 30 días)
Andy
Andy el 20 de Mayo de 2018
Editada: dpb el 20 de Mayo de 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?

Respuesta aceptada

dpb
dpb el 20 de Mayo de 2018
Editada: dpb el 20 de Mayo de 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
>>

Más respuestas (0)

Categorías

Más información sobre Matrix Indexing en Help Center y File Exchange.

Productos

Community Treasure Hunt

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

Start Hunting!

Translated by