-1

Windows7のR2012aで​​GUIDEツールを使用して開発されたMATLABGUIプロジェクトがあります。次のようなコードを使用します。

function pushbutton1_Callback(hObject, eventdata, handles)
  h = figure()
  t = linspace(1,10,200);
  plot(t,sin(t))
  figure(1)
  save2word('myfile.doc')

これにより、図がWindowsクリップボードに保存されます。実際に起こることは、クリップボードに呼び出し元のプログラムの画像が含まれていることです。

次のようにコードを変更すると、期待される画像がクリップボードに表示されます。

function pushbutton1_Callback(hObject, eventdata, handles)
  h = figure()
  t = linspace(1,10,200);
  plot(t,sin(t))
  figure(1)
  save2word('myfile.doc', '-f1')

このようにsave2wordを使用すると問題は解決しますが、以前は機能していたものが変更された理由に戸惑います。Javaアップデートでしょうか?

4

2 に答える 2

1

このsave2word関数は、「印刷」する図を指定するために使用できる2番目の引数を提供します。

save2word('file.doc','-f1')

これは最終的に呼び出します:

print -dmeta -f1

図をクリップボードにコピーします。

もちろん、プログラムで文字列を作成することもできます。図のハンドルはsprintf('-f%d',hFig)どこにありますか。hFig

于 2012-08-08T01:55:20.200 に答える
0

save2wordを使用するには、save2wordを呼び出す必要がありますが、この例では呼び出していません。 print -demtaここにあるので、アクティブなフィギュアをクリップボードにコピーするだけです。それをファイルに保存したい場合は、を使用する必要がありますprint -dmeta 'filename'

ここであなたが何を求めているのか、何を言っているのか完全には理解していない可能性があると思います。与えられた図をWord文書に配置するためにsave2wordが使用すると言っていprint -dmetaますか?save2wordは、一度に複数の図をWord文書に保存することをサポートしておらず、保存する図ごとに毎回呼び出す必要があることに注意してください。

于 2012-08-07T12:27:31.767 に答える