Matlab 2011bでは、最初に2次元の2次元プロットとして表示される多次元行列があります。マーカをマウスの左ボタンでクリック可能にしたい。マーカーをクリックすると、クリックされた値でスライスされた他の寸法の新しい図形が描画されます。クリックしてMATLABプロットマーカープロットサブグラフ
この質問はMatlab: Plot points and make them clickable to display informations about itに関連していますが、クリックしたポイントに関するデータをポップアップするだけでなく、スクリプトを実行したいと思います。
グーグルはButtonDownFcn
を使用することができることを示唆したが、私は見つかった例を手動そうように、各点をプロットし、ハンドラを取り付ける必要:多くのマーカーがメイングラフである
hp = plot(x(1), y(1), 'o');
set(hp, 'buttondownfcn', 'disp(1)');
ように、することが可能ですカーブ全体にハンドラをつけ、インデックス(望ましい)またはマーカの座標をクリックして、サブグラフプロット関数を呼び出します。
ありがとうございます。あなたの例は、私が3Dデータの2Dスライスを得る方法を示していますが、私がクリックした2Dグラフのマーカーのインデックスを取得することにもっと興味があります。たとえば、以下のコードを変更すると、マーカーをクリックすると同じXDataとYDataが出力されます。代わりにクリックしたマーカーのインデックス(1、2、3など)を取得したいと思います。 ファンクションメイン data = peaks; h = plot(1:size(data、2)、data(1、:)、 'o-'); セット(H 'のButtonDownFcn'、@hitme) 終了 関数hitme(関数gcbo、evendata) のget(関数gcbo 'のXData') のget(関数gcbo 'YDataを') エンド – Gnubie
あなたが望むすべてがある場合上記のように、 'pt = get(gca、 'CurrentPoint');'を追加します。それは3Dポイントを与えるので、必要に応じて、最初の行を使用します。 – Rasman
多くの感謝!それは私にマーカのインデックスではなく座標を与えますが、元のマトリックスを知っているので、私はx座標からインデックスを計算できます。ラウンド(pt(1))。 – Gnubie