[英]Plot function in 2D intensity plot in matlab
我正在嘗試將函數可視化為更直觀的顏色編碼圖,該圖可用於圖像中。 我試圖可視化熒光蛋白可以有效地將能量從一種轉移到另一種的范圍。 在此過程中一個非常重要的因素是兩種蛋白質之間的距離。 因此,我想在這些蛋白質之一的頂部繪制能量轉移的理論圖,作為距離的函數。 我想要一個2D強度圖,可以將其用於蛋白質模型中。
描述有效能量傳遞的函數是:
E = R ^ 6 /(R ^ 6 + r ^ 6)
E =能量轉移效率
R =福斯特距離有50%的機會轉移
r =熒光蛋白之間的實際距離
r的低值導致E的高值,意味着能量有效傳遞->綠色r的高值導致E的低值,能量傳遞效率不高->紅色
我的問題是,是否有人可以幫助我將圖形轉換為顏色編碼的圓圈,其中圓圈的中部對應於高E(綠色),並且邊框更加紅色。
到目前為止,我嘗試了mesh + surf函數,但是這些需要矩陣,因此不起作用。
感謝您的幫助,感謝您的答復!
干杯,賴尼爾
如果我理解正確的話
[R r] = meshgrid( 0.1:0.1:5 ); % define 2D inputs
E = (R.^6)./( R.^6 + r.^6 ); % compute 2D function
figure;
surf( R, r, E, 'EdgeColor','none'); % plot using surf
xlabel('R');
ylabel('r');
colormap( [ 1:-0.05:0; 0:.05:1; zeros( 1, numel(0:.05:1) )]' ); % colormap red->green
你得到的是
如果要繪制帶有r(x,y) = || x - y ||
的2D函數E( x,y ; R=5.1 )
r(x,y) = || x - y ||
那你可以試試
[X Y] = meshgrid(-120:1:120); % x,y range -120:120 nm
r = sqrt( X.^2 + Y.^2 );
R=5.1; % fixing R to 5.1 nm
figure;
surf( X, Y, (R.^6)./( R.^6 + r.^6 ), 'EdgeColor','none');
xlabel('X[nm]');
ylabel('Y[nm]');
zlabel('E');
colormap( [ 1:-0.05:0; 0:.05:1; zeros( 1, numel(0:.05:1) )]' );
colorbar;
這樣的話,你會得到
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.