可変次元の行列を使用してベクトルにインデックスを付ける場合、インデックスがベクトルではなく行列であることをオクターブに示すにはどうすればよいですか?
たとえば、次のコードでは、4 回目の反復で、Octave はインデックスを行ベクトルと見なし、インデックス操作の戻り値を列ベクトルに転置します (使用されたベクトルではなく、インデックスが作成されたベクトルに一致させるため)。索引付け用)。
私が実行すると:
v = rand(16,1);
t = magic(4);
f = @(m)(sum(m, 1));
for i = 4:-1:1
s = t(1:i,:);
f(v(s))
endfor
私は得る:
ans =
1.47780 2.28879 1.29786 2.98981
ans =
1.24705 1.31940 0.87484 2.18276
ans =
0.89387 0.55288 0.50312 1.61950
ans = 1.9294
最初の 3 回の反復では答えが行ベクトルですが、最後の反復では答えがシングルトン値であることを確認してください。
変数 s がベクトルではなく行列であること、およびインデックス操作の結果が常に s と同じ形状であることを octave に伝えるにはどうすればよいですか?