Matlabでカラーバーを実装しようとしていますが、グレーで印刷すると線状に見えます。最も単純なアプローチは、gnuplot pm3d 30,31,32 RGBカラースペースを実装することです。 this websiteで私は良い紹介を見つけました。これは簡単なgnuplotスキームのいくつかでうまくいきます。しかし、30,31,32スキームを実装しようとすると、私は困ってしまいます。Matlabカラーマップを再現するgnuplot pm3d 30,31,32 RGBカラースペース
gnuplotの命令は
30: x/0.32-0.78125 31: 2*x-0.84 32: 4x;1;-2x+1.84;x/0.08-11.5
であり、Iは、青色チャネルのためにIは、4つの異なる式を適用しなければならないことが、このような解釈しました。強度値の4分の1ごとに1つ。これまで私が試したことです。
x = linspace(0,1,128);
r = x/0.32-0.78125;
g = 2*x-0.84;
b(1:length(x)/4) = 4*x(1:length(x)/4);
b(length(x)/4:length(x)/2) = 1;
b(length(x)/2:length(x)*.75) = -2*x(length(x)/2:length(x)*.75)+1.84;
b(length(x)*.75:end) = x(length(x)*.75:end)/0.08-11.5;
pm3d303132=[r;g;b]';
残念ながら動作しません。 MATLABは解釈できない負の値と1を超える値になります。
私は
* negative numbers mean inverted=negative colour component
しかし、私はMatlabの中でこれを実装する方法を知らないことをshow palette rgbformulae
助けに読みになりました。私はまた、1を上回る値に対処する方法を理解していません。誰も助けることができますか?
完璧な、それは確かに動作します - 私はこれについて自分自身について考えるべきでした。本当にありがとう。 –