Matlab 不同温度下的黑体强度曲线[简单]

Matlab 不同温度下的黑体强度曲线[简单],matlab,Matlab,我已经写了一个函数,可以根据温度和波长来计算强度。这是600 K温度下的代码: function f=radiation(l,t) l = linspace(0,10^-5,100); % The interval for the wavelength a = 3.7415*10^(-16) ; % constant b = 0.014388; % constant t=600; % Setting the tempe

我已经写了一个函数,可以根据温度和波长来计算强度。这是600 K温度下的代码:

function f=radiation(l,t)

l = linspace(0,10^-5,100); % The interval for the wavelength
a = 3.7415*10^(-16) ;      % constant
b = 0.014388;              % constant
t=600;                     % Setting the temperature to 600 K
f = a./(l.^5.*(exp(b./(l*t))-1)); 
plot(l,f)

现在我想在同一窗口中绘制不同温度的曲线,而不必重复代码。我怎样才能干净利落地做到这一点

这里有一种不必在多个温度上循环的方法:

l = linspace(0,10^-5,100); % The interval for the wavelength
a = 3.7415*10^(-16) ;      % constant
b = 0.014388;              % constant
t=[600,800,1000,1200];
figure;             
[t,l] = meshgrid(t,l);
f = a./(l.^5.*(exp(b./(l.*t))-1)); 
plot(l,f)
legend(num2str(t(1,:)'))
这给了我以下信息:


这里有一种不必在多个温度上循环的方法:

l = linspace(0,10^-5,100); % The interval for the wavelength
a = 3.7415*10^(-16) ;      % constant
b = 0.014388;              % constant
t=[600,800,1000,1200];
figure;             
[t,l] = meshgrid(t,l);
f = a./(l.^5.*(exp(b./(l.*t))-1)); 
plot(l,f)
legend(num2str(t(1,:)'))
这给了我以下信息:


您可以将多个线型传递到
绘图
,请参见中的第三种输入语法。或者,请参见:划伤它,否则将不起作用。在温度值上使用循环,然后查看@excaza的注释以绘制多个实例(即,只需将
f
a矩阵中的列用于不同的温度),以保持当前绘图。您可能还希望使用多维数组或单元格数组存储f的所有值。您可以将多个系列线传递到
绘图
,请参见中的第三种输入语法。或者,请参见:划伤它,否则将不起作用。在温度值上使用循环,然后查看@excaza的注释以绘制多个实例(即,只需将
f
a矩阵中的列用于不同的温度),以保持当前绘图。您可能还希望使用多维数组或单元格数组存储f的所有值,并在相关文档中引用:
如果X或Y中的一个是向量,另一个是矩阵,则矩阵必须具有维度,以便其维度之一等于向量长度。如果矩阵行数等于向量长度,则plot函数将根据向量绘制每个矩阵列。如果矩阵列数等于向量长度,则函数将绘制每个矩阵行与向量的关系。如果矩阵是正方形,则函数将绘制每一列与向量的关系。
相关文档引用:
如果X或Y中的一个是向量,另一个是矩阵,则矩阵的维数必须确保其一个维数等于向量长度。如果矩阵行数等于向量长度,则plot函数将根据向量绘制每个矩阵列。如果矩阵列数等于向量长度,则函数将绘制每个矩阵行与向量的关系。如果矩阵为正方形,则函数将绘制每列与向量的关系。