行列の各要素を1から10までの値から10x1のゼロ行列に変換しようとしています。元の値に対応するゼロ行列の要素要素は、ここでは1Octave:ベクトルのmatix/vectorの要素を置換する
に等しいコードです:
function q = convert
% Convert y matrix values to 10x1 vector
load('y.mat');
ZERO = zeros(10,1);
% Set 10x1 Matrix of zeros
for i = 1:length(y)
ZERO(y(i)) = 1; % Set yth element of ZERO to 1
y(i) = ZERO; % Set ith element of y equal to new zero
ZERO = zeros(10,1); % Re-establish zero
endfor
私はそれを実行すると、私はエラーA(I) = X: X must have the same size as I
を取得します。入力しようとしている行列が行列yの要素のサイズと一致しない場合私はこれを回避することはできますか?
サンプル入力:
y = [1; 2; 3; 4; 5]
出力例:
y = [[1;0;0;0;0;0;0;0;0;0],
[0;1;0;0;0;0;0;0;0;0],
[0;0;1;0;0;0;0;0;0;0],
[0;0;0;0;1;0;0;0;0;0],
[0;0;0;0;0;1;0;0;0;0]]
サンプル入力とそれに対応する出力を教えてもらえますか? – beaker
y = [1; 2; 3; 4; 0]、[0]、[0]、[0]、[0]、[0]、[0] ; [0; 0; 1; 0; 0; 0; 0; 0; 0; 0]; [0; 0; 0; 0; 1; 0; 0; 0; 0; 0]; [0; 0; 0; 0; 0; 1; 0; 0; 0; 0]出力。私は必要なところで要素ごとに変換要素を行うことでその周りにいました。私はちょうどこのような1つのステップでそれをすることを好むでしょう。 –