私は、以下に示すように、オンライングレーダを通じて提出するコードを書いています。 Bは、任意の/ Kを介してすべての整数1を充填し、いくつかの指定された配列であり、Iは行列Xの対応する論理指数を抽出し、これらの要素の上にいくつかの操作を実行する、戻り配列に置くべきたい:MATLAB - 2つの異なる結果につながる同等の論理インデックス
for i = 1:K
A = X(B == i, :);
returnArr(i, :) = sum(A)/length(A);
end
この全く年生を渡し、私は私のアプローチを変更することが見て、代わりに「検索」機能を使用して第1を介して間接的に配列Xをインデックス、以下のようにしませんでした:
for i = 1:K
C = find(B == i);
returnArr(i,:) = sum(X(C,:))/length(C);
end
驚いたことに、このコードは年生に合格問題なし。私は、グレーダー間に多数のバリエーションがあり、別のものとは異なる機能を扱うかもしれないが、MATLABの機能/コーディングの観点からは、2つのアプローチ間の矛盾について何が分かりませんか?ありがとう!
私の最初の考えは、 '長さ(A)'と '長さ(C)'は 'A'が行列なので異なる結果を返すかもしれないということです。 'A'と' C'のサイズは? – TroyHaskin
[mcve]をご覧ください。あなたは 'B'と' K'について説明し、 'X'をどこからでも引き出す。完全な例、期待する結果、実際に得られた結果を提供してください。アプローチは同等ではありません。私はあなたがそれらを見て自分自身のアプローチの違いを説明することができると思います... – excaza