Рисование сетки треугольной матрицы в Matlab - PullRequest
1 голос
/ 24 декабря 2011

Я пытался понять, как «спрятать» бесполезную часть треугольной матрицы от моего трехмерного графика в Matlab.

Я попытался нарисовать сетку чуть выше этой части графика с помощью

'EdgeAlpha', 1, 'FaceAlpha', 1,'FaceColor','w','EdgeColor','none'

но это не помогает. Как мне сделать это вместо этого?

Единственный метод, который полуобработал, - это использование цветовой шкалы, но он не работал полностью, плюс мне нужны черно-белые eps-ы, которые покажут цвет черным, даже если он изначально выглядит белым ...

Это моя последняя надежда;) Barbara

1 Ответ

1 голос
/ 02 января 2012

Краткий ответ: замените «бесполезные» данные значением nan, потому что MATLAB не отображает значения данных, которые являются nan.

Вставка значений 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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...