Splitapply on a matrix of 1X1000

2 visualizaciones (últimos 30 días)
JFz
JFz el 5 de Mzo. de 2018
Comentada: JFz el 5 de Mzo. de 2018
I have a matrix of 1x1000 numbers and my G is 1. When I do the splitapply on it: res = splitapply(@sum, mat, G);
The res Is the sum of the 1000 numbers. What I want is just the one row returned, i.e., res = mat;
How to get that? This is a special case. In general, there are many rows.
Thanks.

Respuesta aceptada

Rik
Rik el 5 de Mzo. de 2018
res = splitapply(@(x) sum(x,1), mat, G);
This is about 10 times slower for mat=rand(1,1000), but it forces the direction of summation. You could also include a conditional statement:
if size(mat,1)==1
res=mat;
else
res = splitapply(@sum, mat, G);
end
  1 comentario
JFz
JFz el 5 de Mzo. de 2018
Thanks! I will use the if statement.

Iniciar sesión para comentar.

Más respuestas (0)

Categorías

Más información sobre Language Fundamentals en Help Center y File Exchange.

Etiquetas

Productos

Community Treasure Hunt

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

Start Hunting!

Translated by