0

以下に含まれているパッチがあり、パッチにButtonDownFcnを追加したいと思います。2番目のオプションを実行すると、コードが機能せず、多くの出力引数が返されます。

オリジナルパッチ

for i = 1:10
    counter = counter+1;
    hpatch(counter) = patch([x(17) x(18) x(1) x(1)],[y(17) y(18) y(1) y(1)],[0 0 0 0],...
    'Parent',hAx,'ButtonDownFcn', ['winopen(''' file(counter) ''');']));
end

新しい希望のパッチ

for i = 1:10
    counter = counter+1;
    hpatch(counter) = patch([x(17) x(18) x(1) x(1)],[y(17) y(18) y(1) y(1)],[0 0 0 0],...
    'Parent',hAx,'ButtonDownFcn', ['winopen(''' file(counter) ''');'],...
    'ButtonDownFcn', @saveClickData(counter));
end

これが機能です

saveClickData(counter)

これでいいの?:

saveClickData(source,event)
4

1 に答える 1

1

試す:

patch(X,Y,Z, 'ButtonDownFcn',{@saveClickData, counter})

次に、コールバック関数を次のように定義します。

function saveClickData(src,evt,counter)
    winopen( file(counter) );

    %# do additional stuff..
end

変数を含む親関数ワークスペースにアクセスできるように、この関数をネストされた関数として定義してください。file

于 2012-07-20T23:21:32.923 に答える