/ / Matlab: Erweitere eine Matrix durch Erweitern ihrer Vektoren - Arrays, Matlab, Vektor, Matrix, Multidimensional-Array

Matlab: Erweitern Sie eine Matrix durch Erweitern ihrer Vektoren - Arrays, Matlab, Vektor, Matrix, Multidimensional-Array

Ich habe ein dxmxn Matrix A (Interpretation: für jeden n, es gibt m Vektoren der Dimension d). Ich möchte jeden d-dimensionalen Vektor wie folgt erweitern:

Betrachten Sie einen Vektor v der Dimension d: (1,2, ..., d) (es ist "s (x_1, x_2, ..., x_d), aber ich entfernte das" x_ "zur Vereinfachung). Das Ziel ist es, zu erweitern v um a zu erhalten d*d Vektor des Formulars:

(1,1, ..., 1,2, ..., 2, ..., d, d, ..., d)

Könnte mir bitte jemand einen schnellen Weg vorschlagen, das zu tun? (Ich denke, dass die Verwendung einer Schleife und die Erweiterung jedes Vektors bei jeder Iteration sehr langsam ist.)

Vielen Dank im Voraus für Ihre Hilfe.

Antworten:

3 für die Antwort № 1

Verdammt!

reshape(permute(repmat(permute(A,[1 4 2 3]),[1 d]),[ 2 1 3 4]),d*d,m,n)

0 für die Antwort № 2
reshape(A(ceil(1/d:1/d:numel(A))), d^2,m,n)