Ich mag A
eine logische n-by-n
Matrix auf zwei n-by-1
Indexvektoren a
und b
solche auf Basis zu schaffen, dass das (i,j)
-te Element in A
1
ist, wenn und nur wenn a(i)==b(j)
.Matlab: effiziente Anpassung von Zeilen- und Spaltenindizes in Matrix
Eine Möglichkeit, dies zu tun, ist wie folgt:
a = [1 1 2 3]';
b = [2 3 1 3]';
n = 4;
a_mat = repmat(a, [1 n]);
b_mat = repmat(b', [n 1]);
A = a_mat == b_mat;
Das Problem bei diesem Ansatz ist, dass es recht speicherintensiv wird, wenn n
groß ist. Ich bin auf der Suche nach einem effizienteren Ansatz, der keine großen a_mat
und b_mat
Matrizen erfordert und auch vernünftig schnell ist.
Gut zu wissen, ich habe mich gefragt, ob implizite Erweiterung funktioniert. Leider stecke ich noch immer mit 2016a fest ... – Bob