使用 MATLAB GUI 将元素添加到向量中
adding elements into a vector using MATLAB GUI
我是 matlab 的新手,我正在尝试制作一个程序,从用户那里获取参数(使用 gui)的 x 值和 y 值,将它们放入 2 个不同的向量中,当用户完成后它使用绘制两个向量的图形。
这是我尝试做的事情:
function pushbutton1_Callback(hObject, eventdata, handles)
x=[];
y=[];
a=str2double(get(handles.edit1,'string'));
b=str2double(get(handles.edit2,'string'));
handles.x=[x a];
handles.y=[y b];
guidata(hObject, handles);
function Doit_Callback(hObject, eventdata, handles)
axes(handles.axes1)
handles.x;
handles.y;
handles.m=handles.x;
handles.n=handles.y;
plot(handles.m,handles.n);
guidata(hObject, handles);
但是绘图函数不会 work.I我试图从 gui 中的编辑文本中获取 a 和 b 并将它们放入向量 x 和向量 y 中,当我完成所有添加后我想要的元素 我正在尝试在 Doit 函数中使用完整向量。
任何帮助将不胜感激
使用以下代码:
x=[];
y=[];
% ...
handles.x=[x a];
handles.y=[y b];
每次用户完成插入值时,他得到的只是两个点(a
和 b
)...因为:
handles.x = [x a]; % x=[]
handles.x = [[] a];
handles.x = a;
您应该实现一个按钮,用于在用户想要从头开始重新启动时清除您的 handles.x
和 handles.y
变量,并更改您的回调代码,以便将值附加到现有的值,如如下:
function pushbutton1_Callback(hObject, eventdata, handles)
handles.x = [handles.x str2double(get(handles.edit1,'string'))];
handles.y = [handles.y str2double(get(handles.edit2,'string'))];
guidata(hObject,handles);
然后(handles.axes1
应该是您的 GUI 中的现有轴,因此您清除它是正确的,但我会改用 cla
):
function Doit_Callback(hObject, eventdata, handles)
cla(handles.axes1);
plot(handles.axes1,handles.x,handles.y);
guidata(hObject,handles);
我是 matlab 的新手,我正在尝试制作一个程序,从用户那里获取参数(使用 gui)的 x 值和 y 值,将它们放入 2 个不同的向量中,当用户完成后它使用绘制两个向量的图形。
这是我尝试做的事情:
function pushbutton1_Callback(hObject, eventdata, handles)
x=[];
y=[];
a=str2double(get(handles.edit1,'string'));
b=str2double(get(handles.edit2,'string'));
handles.x=[x a];
handles.y=[y b];
guidata(hObject, handles);
function Doit_Callback(hObject, eventdata, handles)
axes(handles.axes1)
handles.x;
handles.y;
handles.m=handles.x;
handles.n=handles.y;
plot(handles.m,handles.n);
guidata(hObject, handles);
但是绘图函数不会 work.I我试图从 gui 中的编辑文本中获取 a 和 b 并将它们放入向量 x 和向量 y 中,当我完成所有添加后我想要的元素 我正在尝试在 Doit 函数中使用完整向量。 任何帮助将不胜感激
使用以下代码:
x=[];
y=[];
% ...
handles.x=[x a];
handles.y=[y b];
每次用户完成插入值时,他得到的只是两个点(a
和 b
)...因为:
handles.x = [x a]; % x=[]
handles.x = [[] a];
handles.x = a;
您应该实现一个按钮,用于在用户想要从头开始重新启动时清除您的 handles.x
和 handles.y
变量,并更改您的回调代码,以便将值附加到现有的值,如如下:
function pushbutton1_Callback(hObject, eventdata, handles)
handles.x = [handles.x str2double(get(handles.edit1,'string'))];
handles.y = [handles.y str2double(get(handles.edit2,'string'))];
guidata(hObject,handles);
然后(handles.axes1
应该是您的 GUI 中的现有轴,因此您清除它是正确的,但我会改用 cla
):
function Doit_Callback(hObject, eventdata, handles)
cla(handles.axes1);
plot(handles.axes1,handles.x,handles.y);
guidata(hObject,handles);