如何在 MATLAB 中的用户定义函数中设置当前轴?
how can i set current axes in user defined function in MATLAB?
我正在用 gui 编写程序。除了创建自动函数(例如 gui 中对象的回调)之外,我想创建用户定义的函数以在该程序的任何地方使用它们。所以我创建了我在下面写的网格化函数。
function meshing(p1, p2, p3, p4, p5, p6, p7, p8)
pmb = [( ( p1(1) + p5(1) ) / 2 ) ( ( p1(2) + p4(2) ) / 2 ) p1(3) ];
pmt = [( ( p1(1) + p5(1) ) / 2 ) ( ( p1(2) + p4(2) ) / 2 ) p2(3) ];
p23 = ( p2 + p3 ) / 2;
a = get(gcf);
axes(handles.axes3d);
scatter3(pmt(1),pmt(2),pmt(3))
但是当我 运行 它时,显示以下错误
Error while evaluating UIControl Callback
Undefined variable "handles" or class "handles.axes3d".
Error in SSF>meshing (line 897) axes(handles.axes3d);
但我的图形用户界面中有一个 axes3d。我能做什么
主要问题是 handles
未在您的函数中定义,因为它未作为输入传递。如果您查看所有内部定义的回调,它们都有 handles
作为输入。
在没有看到有关如何让 GUI 调用此 meshing
函数的确切代码的情况下,您可以让 GUI 的 guidata
访问 handles
变量从你的函数中。
handles = guidata(gcf);
然后你就可以在你的函数中使用它了
scatter3(pmt(1), pmt(2), pmt(3), 'Parent', handles.axes3d)
我正在用 gui 编写程序。除了创建自动函数(例如 gui 中对象的回调)之外,我想创建用户定义的函数以在该程序的任何地方使用它们。所以我创建了我在下面写的网格化函数。
function meshing(p1, p2, p3, p4, p5, p6, p7, p8)
pmb = [( ( p1(1) + p5(1) ) / 2 ) ( ( p1(2) + p4(2) ) / 2 ) p1(3) ];
pmt = [( ( p1(1) + p5(1) ) / 2 ) ( ( p1(2) + p4(2) ) / 2 ) p2(3) ];
p23 = ( p2 + p3 ) / 2;
a = get(gcf);
axes(handles.axes3d);
scatter3(pmt(1),pmt(2),pmt(3))
但是当我 运行 它时,显示以下错误
Error while evaluating UIControl Callback
Undefined variable "handles" or class "handles.axes3d".
Error in SSF>meshing (line 897) axes(handles.axes3d);
但我的图形用户界面中有一个 axes3d。我能做什么
主要问题是 handles
未在您的函数中定义,因为它未作为输入传递。如果您查看所有内部定义的回调,它们都有 handles
作为输入。
在没有看到有关如何让 GUI 调用此 meshing
函数的确切代码的情况下,您可以让 GUI 的 guidata
访问 handles
变量从你的函数中。
handles = guidata(gcf);
然后你就可以在你的函数中使用它了
scatter3(pmt(1), pmt(2), pmt(3), 'Parent', handles.axes3d)