用Matlab绘制杨氏双缝干涉图像时,得出的图形总是灰色的,我想要呈现出来的图像是其他颜色的时候,代码应该怎么写呢?还请各位大佬帮忙解答!
你好!请问你需要什么颜色呢?
clc
close all
clear all
%% %%代码分块运行
lambda = 500e-9; %%波长500nm
d = 2e-3; %%双缝间距2mm
D=1; %%双缝距离观察屏之间的距离1m
ym=5*lambda*D/d; %%表示最宽的位置为5个亮纹处
xs=ym;
n=101;
ys=linspace(-ym,ym,n); %%屏面线性间距向量
for i=1:n
r1=sqrt((ys(i)-d/2).^2+D^2); %%光程1
r2=sqrt((ys(i)+d/2).^2+D^2); %%光程2
phi=2*pi*(r2-r1)./lambda; %%相位差
B(i,:)=4*cos(phi/2).^2; %%计算光强,假设初始光强为1,不必加sum
end
N=255;
Br=B*55; %%将光强乘以一个值,以增强图像的区分度,这个值不能太大亦不能太小,可以试一试
subplot(1,2,1); %%一行两列中的第一幅图
image(xs,ys,Br); %%从数组显示图像
colormap(gray(N)); %%使图像以灰度图像显示
subplot(1,2,2); %%一行两列中的第二幅图
plot(B,ys);
title('双缝干涉图样')
只要把原来的colormap(gray(N))改成你需要的就行,比如jet(N)
clc
close all
clear all
%% %%代码分块运行
lambda = 500e-9; %%波长500nm
d = 2e-3; %%双缝间距2mm
D=1; %%双缝距离观察屏之间的距离1m
ym=5*lambda*D/d; %%表示最宽的位置为5个亮纹处
xs=ym;
n=101;
ys=linspace(-ym,ym,n); %%屏面线性间距向量
for i=1:n
r1=sqrt((ys(i)-d/2).^2+D^2); %%光程1
r2=sqrt((ys(i)+d/2).^2+D^2); %%光程2
phi=2*pi*(r2-r1)./lambda; %%相位差
B(i,:)=4*cos(phi/2).^2; %%计算光强,假设初始光强为1,不必加sum
end
N=255;
Br=B*55; %%将光强乘以一个值,以增强图像的区分度,这个值不能太大亦不能太小,可以试一试
subplot(1,2,1); %%一行两列中的第一幅图
image(xs,ys,Br); %%从数组显示图像
colormap(jet(N)); %%使图像以灰度图像显示 ¥¥¥¥¥¥¥¥(改这里)
subplot(1,2,2); %%一行两列中的第二幅图
plot(B,ys);
title('双缝干涉图样')
结果是这样的
如果改成copper(N),winter(N)之类的又会不一样,自己可以去试一试