nが大きいm行n列の行列があります。各列の値の範囲を使用して視覚化したい、つまり、マトリックス全体を 1 つの画像で視覚化したいのですが、各列には独自の範囲があります。これは、列ごとに imagesc を適用し、最後に各列を連結するようなものです。
これを行う効率的な方法はありますか?
nが大きいm行n列の行列があります。各列の値の範囲を使用して視覚化したい、つまり、マトリックス全体を 1 つの画像で視覚化したいのですが、各列には独自の範囲があります。これは、列ごとに imagesc を適用し、最後に各列を連結するようなものです。
これを行う効率的な方法はありますか?
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
必要なものが得られると思います。
最大値と最小値が互いに等しくなる可能性がある場合は、別のステップを追加することをお勧めします。