Rで働いています。
私は行列構造を持っていますが、それぞれ同じ長さ N の 3 つのリスト IND1、IND2、および VAL に格納されています。次のようなマトリックス MAT の VAl に値を格納する必要があります。
for each i in 1 to N:
MAT[IND1(i), IND2(i)] == VAL(i)
ご想像のとおり、MAT の最終的なサイズは必ずしも NxN であるとは限りませんが、必要なサイズはわかっています (サイズを知る必要がある場合は m と呼びます。私にとっては正方行列でなければならないため)。
Matlabには、まさにこれを行うスパース行列を作成するための優れた機能がありますが、言語Rでこれを達成する必要があります。できればループなしで、これが可能かどうかを知っている人はいますか? 前もって感謝します。
PS:私は明白なことを試しました:
MAT <- matrix(nrow=m, ncol=m)
MAT[IND1, IND2] <- VAL
しかし、奇妙な結果が得られます(すべての行に同じ繰り返し値があります)