1

複数の図を同時にプロットする MATLAB コードがあります。同じことを達成するための一般的なトリックは、 を呼び出してから呼び出しfigure(figHandle)を行うことplotです。

figure(h1);
plot(...args...);
figure(h2);
plot(...args...);

ただし、 を呼び出すたびに図を前面に表示することなく、このプロットを実行したいと考えていますfigure(figHandle)。私がやりたいのは、複数の図を同時に表示せずにプロットし、最終的にそれらをExcelシートにエクスポートすることです(Excelシート部分にエクスポートすることを理解しました)。

問題は、数字が多すぎる (約 100) ため、手動で閉じる必要があることです。最終的に必要なのは、エクスポートされた数値を含む Excel シートだけです。

ありがとう。

4

3 に答える 3

4

問題がすべての図を閉じることである場合は、コマンドを使用するだけclose allです。

于 2012-09-16T19:25:45.293 に答える
3

私はモラ(+1)の解決策に同意します。ただし、何らかの理由で、Excel にエクスポートした後も Figure を利用できるようにしたいが、画面には表示したくない場合は、Figure を作成するときに、Figure の visible プロパティを off に設定します。

fig1 = figure('visible', 'off')

そして、突然それを見る必要があると判断した場合:

set(fig1, 'visible', 'on')

編集:matlabでフィギュアを見ることを気にしないのであれば、フィギュアを作成するときにフィギュアのvisibleプロパティを必ずオフに設定する必要があります。これにより、コードの実行時間が大幅に短縮されます。例えば:

x = (1:100)';
tic
for i = 1:1:10
    fig1 = figure('visible', 'off');
    plot(x);
end
close all
toc

私のマシンでの実行には 0.27 秒かかりますが、に切り替える 'off''on'、実行時間は 0.65 秒に増加します。

于 2012-09-17T01:54:13.847 に答える
0

次のような図のハンドルを割り当てます

fig1 = figure

走る

close figure1

それが終わったら、figure1を閉じます。また、タイリングによって1つの図に複数のものをプロットする場合は、サブプロット関数を使用します。

ターミナルからMatlabを実行し、htmlファイルに保存する一連のプロットを生成したい場合は、作成したこの関数を実行し、目的のスクリプトを引数として渡して、設定するだけで忘れてしまいます。

function directoryOutput = cliPub(scriptName)
clc;
close all;
fprintf('Publishing...\n\n');
directoryOutput = publish(fullfile(pwd, scriptName), 'figureSnapMethod', 'getframe', 'useNewFigure', false);
close all;
于 2012-12-05T04:46:46.193 に答える