1
y
は、整数値を持つ列ベクトルで、ラベル番号(たとえば1-3の間)を表します。 今度はy
という同じ行数の行列を作成する必要があります。各行i
は、y(i)
配置要素が1
、その他が0
となるベクトルになりました。特定の列に1を含む行列を作成する
例:
y = [3, 2, 2]';
x = [0,0,1;
0,1,0;
0,1,0];
この仕事を完了するために効率的な方法があります。私は、forループ行います知っている:
x = zeros(size(y, 1), 3)
for i = 1:size(y, 1)
x(i, y(i)) = 1
end
はここで正確な複製です:http://stackoverflow.com/questions/23078287/create-a-zeros-filled-2d-array-with-ones-at-positions-indexed-by-a-vector – Divakar
@Divakar Wowは前にそれを見たことがなかった。私はそこに '希薄な '解決策が好きです。非常に賢い。 – Suever
ええ、それが判明したように、我々はこの特定の問題に関して一連のダブプを持っていました。私が正しく覚えていれば、そのスパースが最も効率的でした。 – Divakar