2017-01-16 9 views
0

私は多くの3dライン(line([...],[...],[...],...)による)で構成されたMATLABの3d-plotを持っています。マウスと回転ツール(Figureウィンドウのクリック可能アイコン)を使用してプロットを回転すると、MATLABは常に軸を再スケーリングします。 axis([...])を使って手動で軸の限界を調整することは可能ですが、3d線やサーフェスオブジェクトの最小/最大値はわかりません。3d-plotの最小値/最大値を取得

surf(peaks)と入力して、自分でテストすることができます。軸は常に0-50と0-60の間で変化します。私はR2011aを使用しています。

作った3d-lines/3d-surface-meshの3d-min/max値を取得する方法を教えてください。手動で軸制限を設定できるのですか?

おかげ

+0

を、あなたは '軸equal'を試みたことがありますか? 'axis vis3d'? –

+0

'axis equal'は私のためには動作しませんが(' surf(peaks) ')、実際には' axis vis3d'が動作します。面白い。これを回答として投稿すると、私はそれを受け入れることができます。 – Lemonbonbon

答えて

2

は、私はあなたがまだコマンドaxisを発見されなかったと思います。 the documentationから:

軸は、アスペクト比の特性を凍結

をvis3d。プロットボックス縦横比モードとデータ縦横比モードのプロパティを手動に設定します。

例:

> surf(peaks); 
> axis vis3d 

...これ以上のランダム軸のスケーリングの変更。

データの最小/最大を抽出するために、あなた本当に必要性(まれ)場合は、次の線に沿って何かを使用することができます

plots = get(gca, 'children'); 
zdata = get(plots, 'zdata'); 
if isscalar(plots) 
    zdata = {zdata}; end 

maxZ = cellfun(@(x)max(x(:)), zdata); 
minZ = cellfun(@(x)min(x(:)), zdata); 
関連する問題