从GUI调用的函数更新matlab GUI

时间:2013-08-20 20:08:27

标签: matlab user-interface

我制作了一个程序,我尝试进行自动测量。该程序到目前为止工作,但我不确定这是否是正确的方法。

该计划包括两个功能:

  • meassure (测量单个设备,绘制数据并将其保存到Excel文件中)
  • measureAutomatically(使用带有0和1的矩阵,移动到矩阵中的所有设备,如果设备矩阵中有1,则会触发测量功能。使用参数:Excel文件名和图形句柄/轴到哪里绘图)

我还添加了一个用于生成设备矩阵的GUI。按钮触发measureAutomatically功能。

GUI应该显示当前测量值(实时,而不是在完成后),如果测量成功与否,它应该将另一个轴上的矩形颜色从灰色变为绿色/红色(如指示器)什么是给定的点)

到目前为止,我给测量函数赋予轴的句柄以绘制并格式化测量函数中的图。

我不确定如何更新矩形的东西。此时measureAutomatically函数获取测量结果,然后查找reactangle(findobj by tag)并更改颜色。

我希望保持这些功能独立于GUI(现在情况并非如此)。那么我应该在GUI中调用一个函数来改变矩形吗?但是我该怎么做?或者做这样的事情的正确方法是什么。我仍然是matlab的初学者,但我不仅想让它工作,而且还想学习正确的方法。

1 个答案:

答案 0 :(得分:0)

我当然会创建一个接受测量状态并随后做任何事情的函数

    function updateStatus(status, isGUI)
    if isGUI
        if status
            % Change the rectangle color to green
        else
            % Change the rectangle color to red
        end
    else
        if status
            % Do something else
        else
            % Do something else
        end
    end

您还可以将句柄传递给图UserData中的对象,或直接使用setappdata/getappdata和引用对象,而不是通过findobj查找它们。但这是偏好的问题。