给定矩阵中的多个信号,例如和具有多个标签m [T x N]
的分组变量g [ 1 x N ]
L < N
是否有一种有效的就地方法来计算每个标签的平均时间信号?
一个 for 循环
ml = zeros (T,L)
for i = 1:T
for j = 1:L
ml(i,j) = mean ( m(i,find(g==j)) )
end
end
是一种直接的方法,但是否有更快/更清洁的方法,可能使用矢量化代码?只是为了(a)摆脱 for 循环和(b)一次性分配m = labelled_means(m, ...)
。我读过关于statarray
,但这看起来甚至比这个 for 循环效率低得多。