-2

私はこのコードをmatlabに持っています。フィギュアでウィンドウを閉じる方法は?このコードを使用していますが、機能しません。なぜですか?

plot(fig1);%Show chart
hold on;
if button == 1
    close(fig1);
    delete(fig1);
    break;
end;

わかりました、コードを変更しました。しかし、うまくいきません。なんで?

fig1 = plot(fig0);
hold on;
if button == 1
    close(fig1);
    break;
end;
4

4 に答える 4

1

closeコマンドが機能するはずです。

例えば:

   fig1 = figure();
   close(fig1); 

間違いはおそらくどこか別の場所にあります。

  1. fig1フィギュアハンドルではありません。
  2. button 1に等しくない
于 2012-09-20T10:23:36.553 に答える
1

あなたはと混同plotしていfigureます; 後者はフィギュアを開くためのもので、前者は実際にフィギュアに何かを描くためのものです。

fig_handle = figure;
plot(1:10);
if button==1
    close(fig_handle);
    delete(fig_handle);
    break;
end

しかし、これはうまくいかない可能性があります。ボタンを押してから、前に開いた図を閉じたいようです。Matlabコードは順番に実行されるため、ここではbutton、Figureを開いた直後に変数がチェックされます。ボタンにリンクされた関数コールバックを探していると思います。

于 2012-09-20T10:24:37.970 に答える
0

fig1にあるデータをプロットします。データを閉じることはできません。図を閉じる必要があります

f=figure;
plot(1:10); % example
close(f);
于 2012-09-20T10:23:49.563 に答える
0

フィギュア自体にプロパティを使用する必要があるかどうか疑問に思います。私は以前にまったく同じ問題を抱えていましたが、あなたのコードは少し疑わしいようです。

まず、各変数に何があるかを把握します。

disp(class(fig1))
disp(ishandle(fig1))
disp(class(fig0))
disp(ishandle(fig0))

がハンドルの場合、私が知る限り、fig0電話をかけることはできません。plot(fig0)がデータの配列である場合fig0、あなたは黄金です。

余談ですが、それを呼び出すと、別のコードで設定できるclose()図が呼び出されます。すべての変数が正常にチェックアウトされているかどうかCloseRequestFcnを試してみることをお勧めします。close forceちなみに、すべての反対票が何のためにあるのかはわかりませんが、もう少し背景を説明したいと思うかもしれません。私にとっては大丈夫ですが、誰もがそれほど寛容ではないと思います。:-)

于 2012-09-20T13:51:06.407 に答える