1

Fサイズの行列と、範囲内のランダムな整数の長さのD-by-Nベクトルがあります。各列がインデックスから始まるベクトルを持つようなサイズの行列を作成したいと思います。AN[1,a]MD * aM(:,i)F(:,i)(A(i)-1)*D+1(A(i)-1)*D+D

例:

F = [1 2 3 10
     4 5 6 22]

A = [3 2 1 2]

a = 4

M = [0 0 3 0
     0 0 6 0
     0 2 0 10
     0 5 0 22
     1 0 0 0
     4 0 0 0
     0 0 0 0
     0 0 0 0]

私は単純なループでそれを行うことができます

        for i = 1 : N
            M((A(i)-1)*D+1:(A(i)-1)*D+D,i) = F(:,i);
        end

ただし、大規模な場合N、これにはしばらく時間がかかる場合があります。ループなしでそれを行う方法を探しています。

4

1 に答える 1