我想对T的不同值绘制E(在x轴上)与f(在y轴上),但它显示矩阵的阶次不同。如何绘制T = 100,125,150,175,200,...,500并使用不同颜色和线宽粗线绘制比通常说的2。虽然当我输入T的单个值时会得到结果。但是我需要知道如何同时为T的多个值进行绘图,并且E的值= 0至10对所有T都是通用的
format long
k = 1.38*1e-21;
e = 1.6*1e-19;
E = (0:0.1:9)*e;
Ef = 5*e;
T=100:25:200;
x=1/(k*T);
f = 1./(exp((E - Ef)*x) + 1); %% fermi function
plot(E,f,'r','LineWidth',2)
legend({'T=100'})
hold on
plot(Ef,0.5,'o','MarkerSize',10,'MarkerFaceColor','blue',...
'MarkerEdgeColor','black')```
您需要隐式扩展才能一次找到所有f
的值。
x = 1./(k*T); % ./ for element-wise division
f = 1./ (exp((E-Ef) .* x.') + 1); % fermi function
% implicit-expansion^ ^fixing dimension order
%
% In <= R2016a, use bsxfun for implicit expansion as follows:
% f = 1./(exp(bsxfun(@times,E-Ef,x.')) + 1);
%Plotting the results
plot(E,f,'LineWidth',2); %Don't hard-code red color here if you need different colors
hold on;
plot(Ef,0.5,'o','MarkerSize',10,'MarkerFaceColor','b','MarkerEdgeColor','k');
legend("T="+T);
%In older versions without string data type, you can create your legend like this:
%legend(cellstr(strcat('T=',num2str(T.'))));
结果: