首页 > 解决方案 > MATLAB如何确保在我的色标中不考虑颤动?

问题描述

我正在尝试制作温度场图并在其上覆盖热流。

问题是热流扰乱了我的色标!通常最低温度应该是 800K 或者我们可以看到它是 0K。我认为这是因为在色标中考虑了向量?谢谢

在此处输入图像描述

在此处输入图像描述

for k=1:nt     
      Told = T;
      for j = 2:m
          for i = 1:n
        
         if(i==1 & (j != m))
         T(1,j) = 0.25*(Told(i,j+1)+Told(i,j-1))+0.5*Told(i+1,j)-h*dx*(Told(1,j)-Tinf)/(2*K); %bord du dessus
         elseif(i==n & j!=m)
         T(n,j) = 0.25*(Told(i,j+1)+Told(i,j-1))+0.5*Told(i-1,j)-h*dx*(Told(n,j)-Tinf)/(2*K); %bord du dessous
         elseif(j==m & i!=1 & i!=n)
         T(i,m) = 0.25*(Told(i+1,j)+Told(i-1,j))+0.5*Told(i,j-1)-h*dx*(Told(i,m)-Tinf)/(2*K); %borde de droite
         elseif((i==1 & j==m))
         T(i,j) = ((0.5*(Told(i+1,j)+Told(i,j-1)))+(Bi*Tinf))/(1+Bi); %coin en haut à droite
         elseif((i==n & j==m))
         T(i,j) = ((0.5*(Told(i-1,j)+Told(i,j-1)))+(Bi*Tinf))/(1+Bi); %coin en bas à droite
         else
         T(i,j) =0.25*(Told(i+1,j)+Told(i-1,j)+Told(i,j+1)+Told(i,j-1)); %au centre
         end
        end
      end
end

        [dTdx,dTdy] = gradient(T); %On calcul de gradient
        u = -K*dTdx; %flux selon x
        v = -K*dTdy; %flux selon y
        imagesc(unique(x),unique(y),T);
        colorbar();
        colormap(jet);
        hold on;
        %title(['Temperature']);
        axis('image', 'off');
        q = quiver(x,y,u,v, 1);
        set(q, 'color', 'black');
        drawnow;

标签: matlaboctave

解决方案


推荐阅读