こんにちは、私は 3 つの色付きの領域を指定したいこのコードを持っています。1 つは、コードに示されているように、最終関数 C と C1 がマージされたときに、 0 未満、0 と 1 の間、および 1 より大きい場合です。コードでは、マージされた輪郭プロットを最後にマージして定義する必要があります。 3 つの単純な領域で。結果を次の図に示します。最初は、最も支配的な色は明るい青だと思うかもしれませんが、contourf プロットとカラーバーを見ると、何らかの理由で一致しません。ご協力ありがとうございました。この問題を別の問題として投稿しなかったことを管理者に謝罪します。
[r,R] = meshgrid(0.1:0.01:10,-5:0.01:5);
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
Z=(((R).^2)-1 );
A=2+ (R.*(r+(1./r)));
B=sqrt(Z).*(r-(1./r));
Ratio=acoth(A./B);
D= (r+(1./r))./4;
E=D./sqrt(Z);
C=D.*E.*Ratio;
C(R==1)=(r(R==1)+(1./r(R==1)))*0.25.*((r(R==1).^2-1)./(2*r(R==1)+r(R==1).^2-1) );
C(R==-1)=(r(R==-1)+(1./r(R==-1)))*0.25.*((r(R==1).^2-1)./(2*r(R==1)-r(R==1).^2+1) );
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
Z1=((1 -(R).^2));
A1=2+ (R.*(r+(1./r)));
B1=sqrt(Z1).*(r-(1./r));
Ratio1=EA(A1./B1);
D1= (r+(1./r))./4;
E1=D1./sqrt(Z1);
C1=D1.*E1.*Ratio1;
C1(R==1)=(r(R==1)+(1./r(R==1)))*0.25.*((r(R==1).^2-1)./(2*r(R==1)+r(R==1).^2-1) );
C1(R==-1)=(r(R==-1)+(1./r(R==-1)))*0.25.*((r(R==1).^2-1)./(2*r(R==1)-r(R==1).^2+1) );
test=C;
test((R<1)&(R>-1))=nan;
test1=C1;
test1(R>1)=nan;
test2=test1;
test2(R<-1)=nan;
figure
contourf(r,R,test)
hold on
contourf(r,R,test2);
colormap(jet(3))
conts = [-1:1:2];
h=colorbar;
set(get(h,'ylabel'),'string','\gamma P_P L','FontSize',18)
xlabel('$r$','Interpreter','latex','FontSize',18)
ylabel('$D \over 2\sqrt{M}$','Interpreter','latex','FontSize',18)
set(h,'YTick',conts)
set(gca,'fontsize',18)
hold off
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
function y = EA(x)
y = acot(x);
y(y<0)=y(y<0)+pi;
return
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
