2016-10-02 11 views
0

サブプロット(1-2)の単位をインチに割り当てる必要があります。 図のためにmovegui()を追加してから、エラーが発生しました。 それがなければ、エラーメッセージは表示されません。 コードMatlabサブプロットでmovegui()を使ってFigureプロパティを割り当てる方法は?

hFig3=figure('Units', 'inches', 'Name', 'Time, Potential, T-p, T-p tiff'); 
movegui(hFig3,'northeast'); % without this, you do not get the error 
% TechnicalMonitoring 
b1=subplot(2,2,1); 
b2=subplot(2,2,2); 
b3=subplot(2,2,3); 
b4=subplot(2,2,4); 

% b1, b2 
hFig3.Children(1).Units = 'inches'; 
hFig3.Children(2).Units = 'inches'; 

エラー

No public property Units exists for class matlab.graphics.GraphicsPlaceholder. 

Error in code_1s (line 488) 
    hFig3.Children(1).Units = 'inches'; 

Matlabの:2016a
OS:Debianの8.5 64ビット

答えて

1

私はあなたのエラーを再現することはできませんが、特定のサブプロットの単位を割り当てたい場合は、 hFig3.Childrenに依存するのではなく、特定の順序でサブプロットを返すのではなく、明示的に割り当てます。これを行うには、axesの配列をsetに渡します。

set([b1 b2], 'Units', 'inches') 

それとも、本当にドット表記を使用したい場合は、個別に

b1.Units = 'inches'; 
b2.Units = 'inches'; 

それとも彼らは

subplot(2, 2, 1, 'Units', 'Inches'); 
+0

を作成しているときに、ちょうど私が本当にあなたの最初の提案を愛し、これを設定することができ、それらを行うことができます私はあまりにも逃してしまった配列を持っています。私のコードは、それがなければ本当に嫌なので、使用する方法を学ぶことができます。私は多くの人物像を持っているので、図やサブプロットの相互作用に多くの複雑さがあります。 –

+1

@マジック可能な限り、グラフィックオブジェクトはどこかに格納されているか、現在のオブジェクトであると仮定するのではなく、このようにして、何があっても動くGUIが得られます! – Suever

+0

あなたは 'set([hFig]、 'Position'、unitsPerInches(:、index);')のようなFigureオブジェクトに対しても同様にできますか?現在、私は 'hFig.Position = unitsPerInches私は同じ 'unitsPerInches'を必要とする他の数字も持っていますので、おそらく' set([hFig、hFig2]、 'Position'、unitsPerInches(:、index); ' –

関連する問題