2011-12-24 14 views
1

私は三角行列の無駄な部分をMatlabの3Dプロットから「隠す」方法を見つけようとしています。Matlabで三角行列のメッシュを描く

私は

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

でちょうどグラフのその部分の上にメッシュを描画しようとしたが、それは解決しません。代わりにどうすればいいですか?

セミワークはカラースケールを使用していますが、途中で動作しませんでした。また、元々白く見えても黒を示す黒と白のepsが必要です。 。

これが私の最後の希望である。) バーバラ

+1

あなたは本当に私たちにあなたを助けるために十分な情報を与えられていません。あなたの行列をプロットするのに現在どのようなコードを使用していますか?結果がどのように表示されるかのサンプル画像がありますか? – gnovice

+0

3週間以上問題を抱えて苦労した後、私は自分自身でそれを理解しました。 NaNの値を行列の不要な部分に代入すると、グラフに表示されません!私はこの簡単な解決策がMATLABの人々によって文書化されているか、オンラインで見つけることができればと思います... –

答えて

1

短い答え:MATLABがNaNあるデータ値をプロットしていないため、値はNaNと「役に立たない」データを交換してください。

マトリックスの残りの半分にナノ値を挿入すると、そのトリックが行われます。下の例を参照してください - それはclunkyですが、アイデアを与える必要があります。私は、私が示したように達成したナノで繁殖することを選択しましたが、心に来た他の半分のものがあります。

 
% 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月にこの結果を思いつきました... –

+0

どういうわけか私はそれを見ませんでした。うわー!私がこれらのことをどう見落とすことができるか私にショックを与えることは決して決してありません。おそらく私は答えなしで質問を熟読していたので、私は答えを期待していなかったでしょう。 @バルバラ、あなたが答えを出すなら(あなたは私のことをコピーすることもできます、私はそれをupvoteし、この1つを取る。) – sage

関連する問題