Melhorando o Código de Construção da Matriz MATLAB: Ou, vetorização de código para iniciantes

Eu escrevi um programa para construir uma parte de uma matriz de transformação Wavelet de 3 bandas. No entanto, dado que o tamanho da matriz é 3 ^ 9 X 3 ^ 10, demora um pouco para que o MATLAB termine de construí-lo. Portanto, fiquei me perguntando se havia uma maneira de melhorar o código que estou usando para torná-lo mais rápido. Eu estou usando n = 10 ao executar o 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;

questionAnswers(3)

yourAnswerToTheQuestion