【发布时间】:2015-01-04 06:04:16
【问题描述】:
由于 MATLAB 在 R2014b 中更改了它的图形引擎,我决定重新运行我的一些代码以获得更好看的图形。不幸的是,我拥有的最后一个代码需要很长时间才能运行,我想高度避免重新运行代码以获得更好的数字。
我将结果保存在 R2013b 中的 .fig 文件中。但是,如果我在 R2014b 中打开它,它仍然是旧格式。
是否可以使用 MATLAB R2014b 绘图引擎重绘图形?如果是,我该怎么做?
注意: 从字面上看,图形是使用新引擎打开和绘制的,但是它保留了旧格式。虽然带有title() 命令的新图形会绘制一个漂亮的大而粗体的标题,但如果使用“drawnow”重绘这个图形或者我为它生成代码,格式保持不变。
示例:此图创建于 2013b,并于 2014b 重新绘制。您可以看到标题与 title('whatever') 在新图形句柄中绘制的格式不同。看起来“.fig”保存并设置了它生成的版本的默认值。因此,重绘时,绘图颜色、标题、标签等看起来就像旧的图形句柄。
这可以使用以下代码进行测试。请注意,这是一个过于简单的问题,问题不是明确地与标题或标签有关,而是所有一般的图形内容。
rng(1)
figure()
x = 1:50;
y = rand(1, 50);
plot(x,y)
title('this NICE Title')
xlabel('labels!')
ylabel('some other labels','Interpreter','Latex')
如果这段代码在2013b和2014b运行,在两者中都保存为fig,然后在两者中都打开为fig,会出现接下来的2个数字:
2013b 无花果文件:http://s000.tinyupload.com/index.php?file_id=02053933004513599550
【问题讨论】:
-
drawnow什么都不做?此外,它是一个简单的情节吗(plot或scatter输出?)。如果是这样,您可以很容易地get出图中的数据。 (轮廓或类似的东西——不是那么容易)。 -
@nkjt 绝对不是一个简单的情节。它有 12 个子图,它们的数据量不同。
-
你能把原图上传到某个地方吗?
-
@AnderBiguri:你可以试试
copyobj吗?类似这样的东西:stackoverflow.com/a/4010043/97160 -
@AnderBiguri:我的想法是先
hgload这个图,然后在它上面使用copyobj创建一个新副本,希望它可以用新的图形系统渲染...无论如何,我只是尝试在我的最后重现问题并且我不能;我使用了一个保存在 R2014a 中的简单绘图,然后将其加载到 R2014b 中的 FIG 文件,并使用新图形(平滑线和新颜色等)进行渲染...你能分享导致的原始 FIG 文件吗问题,或者至少创建一个更简单的问题来展示问题?
标签: matlab matlab-figure matlab-hg2