在matlab图上创建指数衰减的光束

时间:2012-12-08 23:40:22

标签: matlab plot

我在matlab中找出如何在我的情节中创建这些光束时遇到了一些麻烦。

我创建了这个图片,我需要在添加光束之前使用它,但我不知道如何继续。

光束应从表面以指数方式衰减(或衰减),衰减常数为15 cm。因此,如果表面图块具有能量值1,则在深度i处,其中i表示以厘米为单位的深度,该值应为exp(-i/15)。请注意,梁应覆盖中间正方形的整个范围。

图形:

此图片的代码:

Rows = 30;
Cols = 40;
body = zeros(Rows, Cols);
clims = [-1 1];
imagesc(body, clims);
hold on
x = 0:5:40;
y = 0:5:30;
imagesc(x, y, body)
axis([0 40 0 30])
axis xy
shading flat
colorbar
hold on
plot([18, 22],[13, 13],'k')
hold on
plot([18, 18],[13, 17],'k')
hold on
plot([18, 22],[17, 17],'k')
hold on
plot([22, 22],[13, 17],'k')

任何帮助都会非常感激!

1 个答案:

答案 0 :(得分:0)

有几种方法可以做到这一点。基本上,您需要在绘制之前设置体内的值。以下是类似曲线的一个示例,我将让您弄清楚如何根据您的确切需求进行推断。

Rows = 30;
Cols = 40;
body = zeros(Rows, Cols);
xsize=size(body,1);
ysize=size(body,2);
for x=1:xsize
   for y=1:ysize
      body(x,y)=exp((y-ysize/2)*(x-xsize/2));
   end
end
x = 0:5:40;
y = 0:5:30;
imagesc(x, y, body)