2016-05-13 10 views
2

MATLABの軸ハンドルにいくつかのデータを保存したいと思います。 私はそうするために "UserData"プロパティを使用しています。 私は、 "UserData"プロパティがplotコマンドによってクリアされていることに気付きました。これは正常な動作ですか?プロットすることで、軸ハンドルのXDataとYDataは更新されますが、なぜUserDataがクリアされるのか理解できますか?MATLABの軸とユーザデータ

ここに私の問題を示すサンプルコードがあります。私はMATLAB 2014bを使用しています。

figure 
set(gca, 'UserData', 10) 
disp(['UserData = ' num2str(get(gca, 'UserData'))]) % displays 10 in the command window 
plot(1:10); 
disp(['UserData = ' num2str(get(gca, 'UserData'))]) % displays no userdata, it is empty 
+1

これは文書化された動作で、['hold off'](http://www.mathworks.com/help/matlab/ref/hold.html#description)でプロットすると*すべての* axesプロパティがクリアされます。 – excaza

答えて

3

@excasaコメントは正しいですが、いくつかの追加情報があります。

のUserDataが NextPlotプロパティのデフォルト値は replaceあるので、私は主に複数のプロットを作成したいと、私は私のMathWorks社のMATLABの全てで addにこれを変更し、私がしたいときに、私は座標軸上のCLAを使用するクリアされ

それをクリアします。私はどうなるのか、あなたの場合は

は次のとおりです。

f = figure; 
ax = axes ('parent', f, 'nextplot', 'add'); % defining parent is good practice 
plot (ax, [1:10], 'ro'); 
ax.UserData = 10; 
plot (ax, [1:10], 'k-'); 

等...

注:その良い練習変数としての軸を定義し、むしろgcaよりも、すべてのコマンドでそれを使用しますまたはgcf

関連する問題