2017-11-13 5 views
2

私のカラーマップjetに基づいてMatlabでラスタープロットを作成したいと思います。私のカラーマップjetは、-3(青)から+3(赤)になります。そこで、データの正確な値(+1.20など)をカラーマップの対応する色としてプロットしたいと思います。(例:黄色)。 - 私は構造0と1の値を有する 66x900の二重、および各セル内の異なる値を持つ構造B 66x900の二重(例えば、0.21、2.45を有する瞬間しかしカラーマップに基づくMatlabのラスターダイアグラム

、 1.09など)。私がする必要がどのような

は、(1)構造Bの正確な値を持つ構造に1に等しい値を交換することです。 (2)構造体Bのゼロと値からなる新しい構造体(例えば、C)をプロットする必要があります。

トリッキーな部分は、ラスタプロットに、私はcolourmap ジェットの色構造からのものを含むBを(採取した構造値/セルCでプロットする必要があることです値はゼロに等しい)。 0に等しいセル(構造体Bからの値で置き換えられていないセルは、すでに構造体Aにあるゼロであるため、白いピクセルになる必要があります。

例:

Structure A 
0 **1** 0 0 0 **1** 0 **1** **1** 0  0 
0 **1** 0 0 0 0 0 **1** **1** 0  0 
0 0 0 0 0 0 0 **1** **1** **1** **1** 
0 0 0 0 0 0 0 **1** **1** **1** **1** 

Structure B 
    1.2 **1.34** 2.34 1.33 1.43 **-2.99** 2.44 **1.27** **-2.76** 0.09  0.00 
-2.3 **0.45** 2.99 2.01 -2.19 -0.98 0.56 **-1.87** **2.14** 0.00  -0.98 
-0.3  1.20 -0.17 1.2 -2.33 -0.67 1.23 **1.45** **1.08** **1.01** **0.00** 
    1.11 -0.78 -1.66 -0.88 0.12 -1.04 -0.55 **1.32** **1.34** **1.00** **1.97** 

Structure C 
    0 **1.34** 0 0 0 **-2.99** 0 **1.27** **-2.76** 0   0 
    0 **0.45** 0 0 0 0  0 **-1.87** **2.14** 0   0 
    0  0  0 0 0 0  0 **1.45** **1.08** **1.01** **0.00** 
    0  0  0 0 0 0  0 **1.32** **1.34** **1.00** **1.97** 

答えて

2

(1)あなたが(それはまたのための乗算記号働く前に、これは、ドットを追加することによって行われる行列Bに対応する要素を行列Aの各要素を乗算したいです除算と指数)。

(2)NaN値はMatlabプロットでは空白のままです。

% Your data 
A = [1 1 1 1 1 1; 0 0 1 1 1 1; 1 1 1 0 1 1; 1 1 1 1 1 1; 1 1 1 1 1 1; 1 1 1 1 1 1]; 
B = [1 2 3 4 5 2; 5 4 0 0 0 4; 1 2 3 4 1 2; 5 5 5 3 3 3; 5 2 2 2 3 3; 5 1 5 3 4 4]; 
% Set all elements equal to zero to NaN so Matlab doesn't draw them 
A(A==0) = NaN; 
% This returns C(i,j) = A(i,j)*B(i,j) for all elements. 
% A*B would do a matrix multiplication 
C = A.*B; 
%Plot 
pcolor(C) 
+1

それは 'ことに留意すべきですNaNピクセルはレンダリングされないので、軸の背景が何であってもその色を持つように見えます。 – gnovice

0

ランダムな値:次に

a = double(randi([0 1],[4 11])); 
b = rand(4,11); 

idx = find(a == 1); 
a(idx) = b(idx); 

そして、ここでは、あなたのカラーマップを持って

はここで働い例です。 、そして、

a(a == 0) = 1; 

それをプロットします:

白画素を(彼らは背景色がかかりますので、NaNのちょうどそれらが透明になります)を入手するには

colormap(gray); 
pcolor(a); 
関連する問題