How do I vectorize this?

I'm not sure how to even ask this question without code... I am trying to create a 2d matrix of sums from grouping variables--I tried splitapply but that didnt seem to get me exactly what I want, which is a way to do what I show below:
n = 100;
X = randsample(1:9, n, true);
Y = randsample(15:20, n, true);
Z = rand(n, 1);
[ji, ~, jL] = grp2idx(X);
[di, ~, dL] = grp2idx(Y);
nJ = numel(jL);
nD = numel(dL);
Ts = zeros(nJ, nD);
for i=1:nJ
for j=1:nD
Ts(i,j) = sum(Z(ji==i&di==j));
end
end

2 Kommentare

Walter Roberson
Walter Roberson am 29 Apr. 2019
accumarray looks appropriate
Walter
Walter am 29 Apr. 2019
yup! That's it! thank you!

Melden Sie sich an, um zu kommentieren.

Antworten (0)

Kategorien

Mehr zu Encryption / Cryptography finden Sie in Hilfe-Center und File Exchange

Gefragt:

am 29 Apr. 2019

Kommentiert:

am 29 Apr. 2019

Community Treasure Hunt

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

Start Hunting!

Translated by