首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >matlab中二维强度图的绘图函数

matlab中二维强度图的绘图函数
EN

Stack Overflow用户
提问于 2014-06-25 09:30:38
回答 1查看 2.5K关注 0票数 0

我正在尝试将一个函数可视化成一个更直观的彩色编码的图形,它可以用于图像中。我试图想象荧光蛋白可以有效地从一种能量转移到另一种蛋白质的范围。在这个过程中,一个非常重要的因素是两个蛋白质之间的距离。因此,我想绘制能量转移的理论图,作为这些蛋白质顶部距离的函数。我想要一个2D强度图,我可以用它来融入我的蛋白质模型。

描述有效能量转移的函数是:

E = R^6/(R^6+r^6)

E=能量转移效率

R=F rster距离50%的转移机会

R=荧光蛋白之间的实际距离

R的低值导致E的高值,这意味着有效的能量转移->绿色的高r值导致E的低值,低效的能量转移->红色

我的问题是,是否有人能帮我把这张图转换成一个颜色编码的圆圈,在这个圆圈的中间与高E(绿色)对应,边框更红。

到目前为止,我尝试了网格+冲浪功能,但这些都需要一个矩阵,这样就不能工作了。

我感谢你的帮助,谢谢你的答复!

干杯,雷尼耶

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-06-25 10:08:45

如果我理解正确的话

代码语言:javascript
复制
[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

你得到的是

如果您想用E( x,y ; R=5.1 )绘制2D函数r(x,y) = || x - y ||,那么可以尝试

代码语言:javascript
复制
[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;

在这种情况下,你会得到

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24404995

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档