-1

我有一个使用 Windows 7 下 R2012a 下的 GUIDE 工具开发的 MATLAB GUI 项目。它使用类似的代码

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函数提供了第二个参数,您可以使用它来指定要“打印”的图形:

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'

我想我可能不完全理解你在这里问/说什么。您是说 save2word 用于print -dmeta将给定图形放入 word 文档中吗?重要的是要注意 save2word 不支持一次将多个图形保存到一个 word 文档中,并且您需要为每个要保存的图形每次调用它。

于 2012-08-07T12:27:31.767 回答