如何在MATLAB热图中用一个矩阵上色,显示另一个矩阵的值?
实现方法
最简单的方式是利用Matlab热图对象的CellLabel属性,先基于Lat_matrix生成控制颜色的热图,再将单元格标签替换为P_acc_matrix的数值:
N = 36; Lat_extended = [Latency; zeros(N*N - length(Latency), 1)]; Lat_matrix = reshape(Lat_extended, N, N); % 需确保P_acc_matrix是36×36的匹配维度矩阵 figure; h = heatmap(Lat_matrix); % 基于Lat_matrix生成热图(控制颜色) % 将单元格标签设置为P_acc_matrix的数值 h.CellLabel = string(P_acc_matrix);
如果需要自定义显示的小数位数(比如保留2位小数),可以用格式化字符串处理:
h.CellLabel = arrayfun(@(val) sprintf('%.2f', val), P_acc_matrix, 'UniformOutput', false);
这样热图的颜色仍然由Lat_matrix决定,但每个单元格内会显示P_acc_matrix对应的数值。
内容的提问来源于stack exchange,提问作者ricardovaras_99
相关产品推荐
相关产品推荐

