首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何使用matlab可视化/绘制温度梯度?

如何使用matlab可视化/绘制温度梯度?
EN

Stack Overflow用户
提问于 2012-01-18 20:17:59
回答 1查看 10.8K关注 0票数 1

我有三维矩形中特定点的数据,我想看看温度梯度。我有特定点的值,但我希望每个传感器之间有一个连续的梯度流。我无法弄清楚如何可视化或映射放置在不同点的每个传感器之间的数据。隐藏:(

代码语言:javascript
运行
复制
X=[5 0 0 0 0 5 10 10 10 10 0 5 10 10 0 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 0 5 10 0 5 10 10 10 5 0 0]';
Y=[10 10 5 5 10 10 5 10 5 10 0 0 0 0 0 0 3.5 7 3.5 7 3.5 7 3.5 7 3.5 7 3.5 7 3.5 7 3.5 7 0 0 0 0 0 0 5 10 10 10 5 ]';
Z=[20 20 20 14 14 14 14 14 20 20 20 20 20 14 14 14 3.8 3.8 0 0 7.5 7.5 10 10 12.5 12.5 15 15 17.5 17.5 20 20 0 0 0 7.5 7.5 7.5 7.5 7.5 7.5 7.5 7.5]';
%# temperature vector
T = [20 22 24 22.1 26.1 22.4 15 17 21 22 19 22 18 17 18 20 21 22 21 24 22.3 22.5 22.8 28.9 22 27 26 20 19 24 21 23 19 18 22 25 27 21 29 25 22 21 22];
scatter3(X,Y,Z,[4000],T,'.');
grid off
box off
view(32,18); axis equal tight off vis3d; % azimuth 26
camproj perspective
camlight; lighting gouraud; alpha(0.75);
rotate3d on

下面的代码只是展示了我的3d矩形的一侧应该是什么样子的(这只是一个随机代码)

代码语言:javascript
运行
复制
datagrid = 500*peaks(100);
R = makerefmat('RasterSize',size(datagrid));
[aspect,slope,gradN,gradE] = gradientm(datagrid,R);
figure; axesm eqacyl
meshm(datagrid,R)
colormap (jet(64))
colorbar('vert')
title('Peaks: elevation')
axis square
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-01-18 21:55:57

您可以将问题分解为两个子问题:

  • Interpolation
  • Visualization

让我们先来看看插值。有很多方法可用,但让我们试试MATLAB函数griddatan。这将(线性地)将值插值到一组新的点上(这里我使用了一个使用meshgrid构建的规则网格)。

代码语言:javascript
运行
复制
M = 20;
N = 20;
L = 40;

T = transpose(T);

% Set up the grid of points we wish to interpolate at
[xi,yi,zi] = meshgrid(linspace(0,10,M),linspace(0,10,N),linspace(0,20,L));

% Perform interpolation
ti = griddatan([X,Y,Z],T,[xi(:),yi(:),zi(:)]);

% Reshape back from a column vector to a MxNxL matrix
ti = reshape(ti, size(xi));

% Visualise in some way
scatter3(xi(:),yi(:),zi(:),400,ti(:),'.')

当谈到可视化时,那么天空是有限的,3D体积可视化更像是一门艺术而不是一门科学。恐怕我不能运行您的示例(我无法访问makerefmat),但是http://www.mathworks.co.uk/help/techdoc/visualize/bqliccy.html有一些很好的起点。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8909978

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档