【问题标题】:adding elements into a vector using MATLAB GUI使用 MATLAB GUI 将元素添加到向量中
【发布时间】:2018-02-28 21:47:40
【问题描述】:

我是 matlab 新手,我正在尝试制作一个程序,它从用户(使用 gui)获取 x 值和 y 值的参数,将它们放入 2 个不同的向量中,当用户完成后,它使用 plot 来用这两个向量做一个图。

这是我尝试做的:

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); 

但是绘图功能不起作用。我想从 gui 中的编辑文本中获取 a 和 b 并将它们放入向量 x 和向量 y 中,当我添加完所有我想要的元素我正在尝试在 Doit 函数中使用完整的向量。 任何帮助将不胜感激

【问题讨论】:

    标签: matlab vector matlab-guide


    【解决方案1】:

    使用以下代码:

    x=[];
    y=[];
    % ...
    handles.x=[x a];
    handles.y=[y b];
    

    每次用户完成插入值时,他得到的只是两个点(ab)...因为:

    handles.x = [x a]; % x=[]
    handles.x = [[] a];
    handles.x = a;
    

    当用户想要从头开始时,您应该实现一个按钮来清除您的handles.xhandles.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);
    

    【讨论】:

      猜你喜欢
      • 2014-02-23
      • 2013-04-17
      • 1970-01-01
      • 2016-06-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多