Mejora del código de construcción de MATLAB Matrix: O, Vectorización de código para principiantes

Escribí un programa para construir una parte de una matriz de transformación de wavelets de 3 bandas. Sin embargo, dado que el tamaño de la matriz es 3 ^ 9 X 3 ^ 10, MATLAB tarda un tiempo en terminar de construirla. Por lo tanto, me preguntaba si había una manera de mejorar el código que estoy usando para que se ejecute más rápido. Estoy usando n = 10 cuando ejecuto el código.

B=zeros(3^(n-1),3^n);
v=[-0.117377016134830 0.54433105395181 -0.0187057473531300 -0.699119564792890 -0.136082763487960 0.426954037816980 ];

for j=1:3^(n-1)-1 
    for k=1:3^n;
        if k>6+3*(j-1) || k<=3*(j-1)
            B(j,k)=0;
        else 
            B(j,k)=v(k-3*(j-1));
        end                
    end
end
j=3^(n-1);
    for k=1:3^n
        if k<=3
            B(j,k)=v(k+3);
        elseif k<=3^n-3
            B(j,k)=0;
        else 
            B(j,k)=v(k-3*(j-1));
        end
    end

W=B;

Respuestas a la pregunta(3)

Su respuesta a la pregunta