保存10x1线数

问题描述 投票:0回答:1

我有一系列我正在创建的数字,其中2个是线图。我试图将这两个线图保存为jpeg,但我遇到了一些麻烦。使用saveas不起作用。

我也尝试使用print和hgsave来做到这一点,但无济于事。我认为hgsave只能保存为fig格式,所以这可以解释一个。我可以使用文件>另存为手动保存图形,但我也希望能够在代码中执行此操作。

此代码可以复制问题:

x = categorical({'X1', 'X2'});
test = randi(5, 2, 10);
figure;
Test_Line = plot(x, test, 'marker', 'o', 'linestyle', '-');
saveas(Test_Line, 'testline.jpg')

理想情况下,代码应该能够将图形保存为jpeg文件。虽然如果不可能,那么任何图像文件扩展名都应该足够了。相反,我收到此错误:

无法从单元格转换为matlab.graphics.chart.primitive.Line。

这是否与10x1线对象有关?

任何帮助赞赏!

matlab matlab-figure
1个回答
3
投票

您应该提供图形句柄,而不是线对象的句柄。你可以使用gcf来引用当前的数字:

x = categorical({'X1', 'X2'});
test = randi(5, 2, 10);
figure;
Test_Line = plot(x, test, 'marker', 'o', 'linestyle', '-');
saveas(gcf, 'testline.jpg')

或者(例如,当您创建了多个图形并希望在脚本末尾保存它们时),存储图形句柄:

x = categorical({'X1', 'X2'});
test = randi(5, 2, 10);
fig = figure;
Test_Line = plot(x, test, 'marker', 'o', 'linestyle', '-');
saveas(fig, 'testline.jpg')
© www.soinside.com 2019 - 2024. All rights reserved.