2011-12-24 190 views
1

我一直在試圖弄清楚如何在Matlab中從我的3d繪圖中「隱藏」三角形矩陣的無用部分。在Matlab中繪製三角形矩陣的網格

我曾嘗試繪製模型只是上圖中的那一部分與

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

,但它並不能幫助。我應該怎麼做呢?

半工作的唯一方法是使用色階,但它並沒有一直工作,再加上我需要黑色和白色的eps,即使原本看起來是白色,它也會顯示爲黑色。 。

這是我最後的希望;) 芭芭拉

+1

你真的沒有給我們足夠的信息來幫助你。你目前使用哪些代碼來繪製矩陣?你有一個結果應該是什麼樣子的樣本圖像? – gnovice 2011-12-24 17:44:02

+0

經過三個多星期的爭論,我現在已經弄清楚了。如果將NaN值分配給矩陣中不需要的部分,它將不會顯示在圖上!我希望這個簡單的解決方案是由MATLAB人員或可能在網上找到... – 2011-12-25 14:45:33

回答

1

答案很簡單:將「無用」的數據與值楠因爲MATLAB不繪製是男的數據值。

將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

+0

謝謝,但正如你所看到我在12月奇蹟般地想出了這個結果... – 2012-02-27 21:34:13

+0

不知何故,我沒有看到。哇!它永遠不會讓我震驚,我怎麼能忽略這些東西。也許因爲我在沒有答案的情況下仔細閱讀問題,我就沒有回答。 @Barbara,如果你提出你的答案(你甚至可以複製我的答案,我會放棄它,把它拿下來。) – sage 2012-02-27 23:46:35