缺少图形工具栏以及全局变量可能发生的更改



今天我试着在我的图下面添加一个滑块,这样当你滑动它时就会画出不同的图。最终,我让所有这些都能很好地工作,但我仍然有两个小问题。在带有滑块的图形顶部,图形工具栏不见了。单击图顶部的视图->图工具栏可以很容易地添加它。然而,每次都这样做有点乏味。当我在谷歌上搜索这个问题时,结果都是创建自定义工具栏的指南。我只想把默认的工具栏添加回来,它很好。但我不知道该怎么做。键入"uitoolbar"会得到一个空的。但我不知道如何用默认图标填充它。

还有我遇到的第二个问题;主脚本最后调用一个函数,然后这个函数用滑块创建新的图形。然而,在此之前,我需要将要绘制的数据矩阵从主脚本转移到函数,因此我将矩阵作为全局变量。然而,一旦调用该函数,matlab就会给我这个错误(每个全局变量一次):

> In xxxx at 270 
Warning: The value of local variables may have been changed to match the globals.     
Future versions of MATLAB will require that you declare a variable to be global before you use that variable. 

在我调用函数之前,我键入

  global xL yL zL p

它们是绘图所需的数据。然后函数文件中的第一行又是同一行。数据传输似乎很好,图表显示了正确的图表。这是我可以忽略的错误吗?既然一切正常?或者它到底是什么意思?

好的,这是我的2美分:

1) 据我所知,获取工具栏的最简单方法是使用findobj,然后使其可见:

hToolBar = findobj('Type','uitoolbar');
set(hToolBar,'Visible','on');

您也可以使用"get"获取工具栏的属性。以下是我运行的一个简单脚本的样子:

get(hToolBar)
hToolBar =
    0.1890 %// don't worry about that number; it's the handle for the toolbar.

    BeingDeleted = off
    ButtonDownFcn = 
    Children = [1.18896]
    Clipping = on
    CreateFcn = 
    DeleteFcn = 
    BusyAction = queue
    HandleVisibility = on
    HitTest = on
    Interruptible = on
    Parent = [1]
    Selected = off
    SelectionHighlight = on
    Tag = 
    Type = uitoolbar
    UIContextMenu = []
    UserData = []
    Visible = off

我不知道为什么它会消失。

2) 如果你把数据作为函数的输入发送,你可能会去掉那些全局变量,这是可能的吗?

例如:

function PlotData(xL,yL,zL,p)
%// Your code here

希望能有所帮助!

最新更新