How to modify table elements without using a for loop?
3 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
Elissa
el 4 de Nov. de 2018
Comentada: Peter Perkins
el 6 de Nov. de 2018
E.g.
% t is a table
for (yy = 1:size(t,1))
if strcmp('cat',t.animal(yy))
t.value(yy) = t.value(yy)*-1;
end
end
1 comentario
Respuesta aceptada
Stephen23
el 4 de Nov. de 2018
Editada: Stephen23
el 4 de Nov. de 2018
Your original idea of using strcmp was perfect, there is no need to complicate things with strings:
value = [1;2;3;4]
animal = {'cat';'dog';'cat';'dog'}
t = table(value,animal)
idx = strcmp(t.animal,'cat')
t.value(idx) = -t.value(idx)
2 comentarios
Peter Perkins
el 6 de Nov. de 2018
One addition to Stephen's sol'n: if animal is representative of what your actual data look like, you should consider using a categorical variable. You would then change one line
idx = (t.animal == 'cat');
but also you might find working with that variable elsewhere much simpler.
Más respuestas (0)
Ver también
Categorías
Más información sobre Tables en Help Center y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!