2017-02-12 13 views
0

3D行列があり、3次元に沿って符号付き最小値を求めます。現在、次のコードを使用しています。MATLABの3次元行列の符号付き最小値を求めます。

tmp = abs(d); 
[row, col]=ndgrid(1:size(d,1),1:size(d,2)); 

[v,ind] = min(tmp,[],3); 
index = row + size(d,1)*size(d,2)*(ind-1)+ size(d,1)*(col-1); %turn the ind to index 
dm = d(index); %get the signed minimum value 

上記のコードはあまり効率的ではありません。誰が良い選択を知っていますか?ありがとうございました!

答えて

1

のではなく、あなたが戻っdへのインデックスに使用することができますインデックスにindを変換するrowcol値のグリッドを作成し、あなただけの三次元に沿って、それらの最小値が含まれていmin最初の出力を使用することができます。

dm = min(abs(d), [], 3); 
+0

こんにちはスーバー、返信いただきありがとうございます。しかし、あなたの場合、dmは絶対値です。私の場合、dmは符号付きの値です。 – Yuanhao