MATLAB: Can I do this with LOOPING


Hello, i want to make some sorting program. from 2 pushbutton (pushbutton A and B) callback and with some value and the sorting in listbox. so when i push the pushbutton A, it will show the button name and the value in listbox. something like this (A, 12) with A is the name and 12 is the value. and later when i push button B with value 3 (B, 3) it should have be in the first listbox apart (A, 12) because the value in B is smaller and so everytime we press the button it will show the name and the value and if the value is smaller it will be in the first and if larger it will be in the next one. i can't use some larger and smaller operator because in the listbox they become string. how can i compare the value in the list box?

Best Answer

  • Consider storing the numeric values in the UserData field of one of the controls.
    ud = get(handles.listbox1, 'UserData');
    if isempty(ud)
    ud = struct('as_string', {{}}, 'as_numeric', []);
    new_str = [ud.as_string, new_string];
    new_num = [ud.as_numeric, new_number];
    [new_num, sort_order] = sort(new_num);
    new_str = new_str(sort_order);
    ud.as_string = new_str;
    ud.as_numeric = new_num;
    set(handles.listbox1, 'UserData', ud);
    and now you can set the listbox string to new_str