Ulepszanie kodu konstrukcyjnego MATLAB Matrix: Lub kodowanie wektoryzacji dla początkujących

Napisałem program w celu skonstruowania części 3-pasmowej macierzy transformacji falkowej. Jednak biorąc pod uwagę, że rozmiar macierzy wynosi 3 ^ 9 X 3 ^ 10, upłynięcie trochę czasu, zanim MATLAB skończy ją konstruować. Dlatego zastanawiałem się, czy istnieje sposób na ulepszenie kodu, którego używam, aby działał szybciej. Używam n = 10 podczas uruchamiania kodu.

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