2

int8double を整数に変換するためにmatlab の関数を使用しています。ただし、私のプログラムが多数の値に対して実行されると、パフォーマンスがやや低下します。約 1,400 万回の実行で、この関数のコストは約 3 分であり、私のプログラムの中で群を抜いて最も重いセクションです。

これを回避する方法はないか考えてみました。

いくつかの数学的操作を試み、他の試行で質問を更新します。

コードフラグメントは次のとおりです。

pixel_value = int8(pixel_value) + 1;

パフォーマンスのスクリーンショット

4

1 に答える 1

4

pixel_valueへのインデックスとして使用しているだけなので、代わりにをhistogram使用して、同じ方法で小数部分を切り捨てることができます。floorint8

あなたの例では正の値を示していますが、負の値が予想される場合は、 を使用できますfix

しかし、これは速くないようです...うーん。

于 2013-11-06T02:09:40.963 に答える