我有一个可以以各种不同方式运行的函数,具体取决于代码顶部设置的 42 个常量的状态。到目前为止,如果我想在不同的条件下运行我的函数,我只需打开 MATLAB 代码并调整代码开头的常量。
有 42 个常量需要跟踪,而且我发现自己在进行实验时会意外打开某些开关。显而易见的解决方案是构建一个 GUI,可以在一个地方直观地看到我的输入。GUI 只是一个参数设置窗口,底部有一个大的“Go”按钮,它接受输入(全部 42 个!)并将它们传递给我的主函数。
我遇到了 GUIDE,我用它来构建一个不错的 GUI。我设法获得了一个按钮来启动我的函数,但我正在努力将实际变量输入到文本框和复选框状态以传递给主函数。
我知道它与“回调”有关,但文档不清楚,似乎更关心构建其中变量调整当前窗口内容的 GUI。
作为一个基本示例,我正在使用一个复选框。我知道当我单击一个复选框时,函数 checkbox1_Callback(hObject, eventdata, handles) 会执行。我已修改此函数,使其返回一个变量“状态”,该变量在函数期间以下列方式设置:
state = get(hObject,'Value')
每当我单击复选框时,都会弹出一条消息说状态已更改。当然,一旦发生这种情况,函数就结束了,变量也被销毁了。似乎没有任何方法可以在其他地方接收变量。.m 代码在任何地方都不包含对 checkbox1_Callback 函数的调用,所以我不知道在哪里可以接收输入。
我曾希望我可以在单击“开始”按钮时调用 checkbox1_Callback 函数,但我不知道将哪些参数传递给回调。
显然我在这里遗漏了一些基本的东西,但是文档并没有让这变得容易!任何指针将不胜感激。