我在用matlab畫三維場強圖時,找不到合適的colormap。最接近的colormap是matlab自帶的jet,即隨著函式值的增大顏色從藍過渡到紅。但由於場強圖主要表徵場的幅值特性,顏色區分只與函式值的絕對值相關,直接用jet函式就會導致場強最小位置的顏色為中間過渡色,而非藍色。因此我利用colormap顏色rgb值漸變過渡的關係,編寫了乙個適用於場強表示的colormap。
程式效果見下圖,本程式參考jet的色彩過渡關係,為了編寫方便提公升了色彩的純度,採用blue[0,0,1]/cyan[0,1,1]/ yellow[1,1,0]/red[1,0,0]的純色rgb值。
科研初學者,程式沒啥含量,就是自己的一點小理解。
% 電場colormap設定
n_step=9;
color_row=n_step*6+
7;color_map=
zeros
(color_row,3)
; color_r =0:
1/(n_step+1)
:1; color_g =0:
1/(n_step+1)
:1;color_b =0:
1/(n_step+1)
:1;% red to yellow
color_map(1
:1+(n_step+1)
,1)=
1;color_map(1
:1+(n_step+1)
,2)=color_g;a=1
+(n_step+1)
;% yellow to cyan
color_map
(a:a+
(n_step+1)
,1)=
fliplr
(color_r)
;color_map
(a:a+
(n_step+1)
,2)=
1;color_map
(a:a+
(n_step+1)
,3)=color_b;
a=a+
(n_step+1)
;% cyan to blue
color_map
(a:a+
(n_step+1)
,2)=
fliplr
(color_b)
;color_map
(a:a+
(n_step+1)
,3)=
1;a=a+
(n_step+1)
;% blue to cyan
color_map
(a:a+
(n_step+1)
,2)=color_b;
color_map
(a:a+
(n_step+1)
,3)=
1;a=a+
(n_step+1)
;% cyan to yellow
color_map
(a:a+
(n_step+1)
,1)=color_r;
color_map
(a:a+
(n_step+1)
,2)=
1;color_map
(a:a+
(n_step+1)
,3)=
fliplr
(color_b)
;a=a+
(n_step+1)
;% yellow to red
color_map
(a:a+
(n_step+1)
,1)=
1;color_map
(a:a+
(n_step+1)
,2)=
fliplr
(color_g)
;colormap
(color_map)
;
關於Matlab中矩陣元素的表示方法
首先一點要說明的是,在matlab中,矩陣中的元素序號是按照 先行後列 的順序排列的。設如下隨機矩陣 a rand 4,6 a 0.6551 0.9597 0.7513 0.8909 0.1493 0.8143 0.1626 0.3404 0.2551 0.9593 0.2575 0.2435 0....
MATLAB篇 訊號的表示
1 繪製連續時間訊號x t e 0.707t sin 2 3t 關於t的曲線,t的取值範圍是0 30s,並以0.1s遞增。程式如下 t 0 0.1 30 對時間變數賦值 x exp 0.707 t sin 2 3.t 計算變數所對應的函式值 plot t,x grid 繪製函式曲線 ylabel x...
Matlab中DSP的系統函式的表示法及其轉換
零點向量z z1 z2 zm 1 極點向量p z1,z2,zn 1 k為系統增益。分母極點向量p p 1 p 2 p n 分子留數向量r r 1 r 2 r n 餘數多項式係數向量k k 1 k 2 k m n 1 二階因式為,注意,二階因式對應的係數分別就是框圖對應的係數!sos 1 傳遞函式轉換...