同时使用GUI和脚本

时间:2014-05-10 19:53:26

标签: matlab user-interface

我有一个控制实时机器人的.m文件(脚本)。

我在这个文件中做的是:

1- find a trajectory

2-infinite loop:

    read from robot
    update robot
    plot some stuff (basically I'm drawing a new point in each iteration that represents the position of the robot in a previously opened map, it's updating the map)

end of loop

我想要做的是创建一个GUI,允许我制作绘图并实时查看机器人同时返回的一些值。

根据我的阅读,MATLAB不能同时运行脚本和GUI。我可以在GUI中实时绘制,但我似乎无法在GUI中的文本框中更新机器人返回的值。

我是否必须将其全部放在同一个文件中,或者GUI和脚本是否有办法在单独的文件中工作? 提前谢谢!

1 个答案:

答案 0 :(得分:0)

MATLAB运行两者都没有问题。我不知道你在哪里读到这些,但事实并非如此; MATLAB不是解决这个问题的最佳工具,但它可以做到。

首先,我将在代码中构建您的问题,以便更容易解决。你的问题含糊不清,所以我的回答也必须是一般性的。我对你的功能结构做了一些假设,但它看起来应该是这样的:

endflag = 0;
while ~endflag
    robotData = getRobotData(robotHandel);
    derivedData = doStuffWithData(robotData);
    updateRobot(derivedData);

    showData(robotData, derivedData)      

    endflag = checkEndFlag(robotData, derivedData)
end 

所以,你的问题是showData功能。它应该做什么,确定需要从它的输入显示哪些值,并将它们传递给您的GUI。像这样:

function showData(robotData, derivedData)
    guiInputData = dataParser(robotData, derivedData)
    YourGUIFunctionName(guiInputData)
end

然后GUI函数应该使用这些输入构建自己。任何以这种方式工作的GUI功能都可以满足您的需求。如果您需要更具体的解决方案,则需要向我提供有关您的问题的更多具体信息。祝你好运,我希望这会有所帮助。