たった1行のコードで入力2D行列のモードの行列を計算するために、モード関数の入力パラメーターをどのように配置するのか疑問に思っています。
例えば
x=[7 2;5 10]
y=[7 1;8 3 ]
z=[7 2;8 10]
mode(x、y、z)がこの出力を与えるようにしたい
output=[7 2;8 10] // these are the most occurring elements in each index
私はこの方法でそれを行いましたが、高次元の行列では約2秒かかるので、より効率的な解決方法を探しています。
for i=1:2
for j=1:2
votes=[];
for k=1:length(arrs) // arrs is a cell array of matrices
votes=[votes arrs{1,k}(i,j)];
end
res(i,j) = mode(votes);
end
end
で構成される3次元配列を作成し、3次元に沿ってx,y,z
呼び出しmode
て目的の結果を取得します。
xyz = cat(3,x,y,z);
ans = mode(xyz,3);
ans =
7 2
8 10
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加