0

nが大きいm行n列の行列があります。各列の値の範囲を使用して視覚化したい、つまり、マトリックス全体を 1 つの画像で視覚化したいのですが、各列には独自の範囲があります。これは、列ごとに imagesc を適用し、最後に各列を連結するようなものです。

これを行う効率的な方法はありますか?

4

1 に答える 1

2

imagesc を使用する前に、列単位の正規化を行う必要があると思います。

という画像があるとしますoriginal

original = rand(10,5);

最初に各列の範囲を取得します。

myMax = max(original);
myMin = min(original);
myDiff = myMax-myMin;

次に、適切なレベルにシフトダウンします

newimage = bsxfun(@minus,original,myMin);

最後に、適切なスケールに再スケーリングします。

newimage = bsxfun(@rdivide,newimage ,myMax - myMin);

これで、 imagesc を適用するだけで、newimage必要なものが得られると思います。

最大値と最小値が互いに等しくなる可能性がある場合は、別のステップを追加することをお勧めします。

于 2013-03-27T17:45:16.720 に答える