在Matlab中绘制三角矩阵的网格

时间:2011-12-24 01:02:24

标签: matlab matrix mesh

我一直试图弄清楚如何从Matlab中的3d图中“隐藏”三角矩阵的无用部分。

我尝试使用

在图形的上方绘制一个网格
'EdgeAlpha', 1, 'FaceAlpha', 1,'FaceColor','w','EdgeColor','none'

但它没有帮助。我应该怎么做呢?

半工作的唯一方法是使用色标,但它不能一直工作,而且我需要黑色和白色的eps,即使它看起来是白色的,它也会显示颜色为黑色......

这是我最后的希望;) 巴巴拉

1 个答案:

答案 0 :(得分:1)

简短回答:用值nan替换“无用”数据,因为MATLAB不绘制数据值为nan。

将纳米值插入矩阵的另一半应该可以解决问题。看下面的例子 - 它很笨重,但应该提出想法。我选择乘以nan,这是我所显示的,但是还有六种其他的东西浮现在脑海中。

% Create random data for illustration
data = tril(rand(50));

% I chose to divide by a lower triangular ones matrix (zeros above the
% diagonal) to get nan above the diagonal and ones below
nan_above_diag_ones_below = 1./tril(ones(50,50)); 

% Plot data with and without hiding the "useless part"
figure, 
subplot(1,2,1), mesh(data), title('"useless" part shown')
subplot(1,2,2), mesh(data.*nan_above_diag_ones_below), 
title('"useless" part hidden')

Plots showing "useless" part of diagonal matrix shown and hidden