/ / Matlab: estende una matrice estendendone i vettori: array, matlab, vettore, matrice, matrice multidimensionale

Matlab: Estendi una matrice estendendo i suoi vettori: array, matlab, vettore, matrice, matrice multidimensionale

Ho un dXmXn matrice A (interpretazione: per ciascuno n, ci sono m vettori di dimensione d). Vorrei estendere ogni vettore d-dimensionale come segue:

Prendi in considerazione un vettore v di dimensione d: (1,2, ..., d) (è "s (x_1, x_2, ..., x_d) ma ho rimosso" x_ "per semplicità). L'obiettivo è estendere v ottenere un d*d vettore del modulo:

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

Qualcuno potrebbe suggerirmi un modo veloce per farlo? (Immagino che usare un ciclo ed estendere ogni vettore ad ogni iterazione sia molto lento.)

Grazie in anticipo per il vostro aiuto.

risposte:

3 per risposta № 1

Dannazione!

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

0 per risposta № 2
reshape(A(ceil(1/d:1/d:numel(A))), d^2,m,n)