如何在Matlab中绘制3D热衰减图?附数据与参考样式
Matlab绘制指定样式的3D热衰减图
数据定义
首先整理你提供的原始数据,注意温度数据有5行,对应5个时间点,因此取时间数组的前5个元素匹配:
% 空间点数据 x = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]; % 时间点数据(匹配温度数据的5行) t = [10, 20, 30, 40, 50]; % 温度数据(每行对应一个时间点,每列对应一个空间点) y = [ 500, 400, 600, 700, 800, 500, 600, 800, 300, 200; 400, 300, 600, 700, 200, 500, 900, 800, 300, 800; 300, 600, 600, 700, 800, 500, 600, 900, 300, 200; 200, 400, 300, 600, 500, 100, 900, 800, 300, 700; 400, 400, 600, 300, 800, 500, 600, 600, 200, 200 ];
基础3D热衰减图实现
下面的代码直接生成符合你轴要求(x=空间点,y=温度,z=时间)的3D曲面图,匹配参考样式:
% 生成二维网格,适配3D绘图函数 [X, Z] = meshgrid(x, t); % 绘制3D曲面图,参数顺序对应x(空间)-y(温度)-z(时间) surf(X, y, Z); % 设置轴标签 xlabel('空间点'); ylabel('温度'); zlabel('时间'); % 使用热色映射,直观体现温度高低 colormap jet; % 添加颜色条,关联温度数值 colorbar; % 调整视角,匹配参考图的倾斜角度 view(30, 30); % 添加图标题 title('空间点随时间的温度热衰减图');
可选:平滑曲面优化
如果需要更平滑的视觉效果,可以对原始数据进行插值处理:
% 生成更密集的插值网格 [X_interp, Z_interp] = meshgrid(linspace(min(x), max(x), 50), linspace(min(t), max(t), 20)); % 三次插值生成平滑温度数据 y_interp = interp2(X, Z, y, X_interp, Z_interp, 'cubic'); % 绘制平滑后的曲面图 surf(X_interp, y_interp, Z_interp); xlabel('空间点'); ylabel('温度'); zlabel('时间'); colormap jet; colorbar; view(30, 30); title('平滑后的空间点温度热衰减图');
内容的提问来源于stack exchange,提问作者SSS
相关产品推荐
相关产品推荐

