matlab - 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;
解决方案
推荐阅读
- javascript - 用空格分割字符串,除非空格在最浅层的大括号或方括号内
- python - 我如何在 python 中实现内置对象和创建的类之间的操作?
- python - 在python中将uint64转换为字节数组
- elasticsearch - 如何在 Elasticsearch 中组合多个 aggs?
- html - 如何使按钮高度相同?
- r - 循环遍历列表时出错:“`[<-.data.frame`(`*tmp*`, , i, value = c(7L, 1L, 4L, 7L, 7L, : 新列会留下漏洞... "
- vba - 使用 VBA 在 Excel 中扫描时,将扫描的值从一个单元格移动到一个范围内的另一个单元格
- c# - 使用 .NET Core MSTest 运行单元测试:“未找到以下 TestContainer...”
- angularjs - 出现错误:添加 angular-bootstrap-lightbox 依赖项时出现 $injector:modulerr 模块错误
- python - Pyinstaller 的构建提前退出而没有错误