App Designer doesn't support saveas, savefig, or print,但有没有办法用它来启动MATLAB程序呢?
我正在使用MATLAB程序,该程序包含数千行代码,而不是全部代码。该程序保存数字供以后参考,一些以.fig格式保存,一些以PDF格式保存。它运行良好,但每次运行都有很多选项可供选择,目前通过编辑主脚本顶部的值来完成。我想添加一个GUI来简化它。
我知道还有其他方法,但App Designer似乎是“现代”的东西。我可以将它用作现有脚本的启动器吗?如果我只是如下所示调用它,App Designer的图形限制适用于整个脚本,并且它执行所有计算但在第一次“打印”时失败。我希望还有另一种方式。
% Callback function
function GoButton_2Pushed(app, event)
% Save values for GUI restart.
setKeySaveState(app);
% Use a struct to pass values to the model.
scriptVars = app.modelVars;
% Run
The_Name_of_My_Script
end
我可以让GUI将结构写入json格式的文件,手动启动主脚本,并让它读取文件。但这看起来很傻。
编辑:以下是来自MATLAB命令窗口的错误消息:
使用打印时出错(第79行)数字不支持功能 使用uifigure函数创建。有关更多信息,请参阅图形 在App Designer中支持。
MapsCoralCoverClean中的错误> oneMap(第298行) print(' - dpdf',' - r200',outFile);
MapsCoralCoverClean(第70行)oneMap(13,activeLatLon(:,1), activeLatLon(:,2),events85_2010(activeReefs),[],jet,tName, outFile,false);
A_Coral_Model_170118中的错误(第780行) MapsCoralCoverClean(fullMapDir,Reefs_latlon,toDo,lastYearAlive,...
ModelGUI_2017a / GoButton_2Pushed中的错误(第465行) A_Coral_Model_170118使用matlab.ui.control.internal.controller.ComponentController / executeUserCallback时出错 (第310行)评估Button PrivateButtonPushedFcn时出错。
答案 0 :(得分:1)
我发现最好总是明确地为图形对象提供句柄,因为依赖于MATLAB的current figure和current axes经常不一致并且可能导致问题。
除非明确提供,否则print
将根据传递的其他参数保存当前数字。在这种情况下,您的print
窗口在执行其他处理功能期间仍然是当前数字,导致print
错误输出,因为它尚未针对某些新图形对象实现(为什么,MathWorks ,为什么!?)。要解决此问题,请将处理函数“figure
”调用的输出作为import UIKit
class RoundedButton: UIButton {
override init(frame: CGRect) {
super.init(frame: frame)
self.layer.cornerRadius = self.bounds.width * 0.5
self.backgroundColor = UIColor(patternImage: UIImage(named: "map.png")!)
self.setTitleColor(UIColor.white, for: UIControlState.normal)
}
required init?(coder aDecoder: NSCoder) {
super.init(coder: aDecoder)
self.layer.cornerRadius = self.bounds.width * 0.5
self.backgroundColor = UIColor(patternImage: UIImage(named: "map.png")!)
self.setTitleColor(UIColor.white, for: UIControlState.normal)
}
}
的第一个输入传递。