• Регистрация
Ilja_Golikov
Ilja_Golikov 0.00
н/д

MatLab GUI

06.11.2020
Нужно построить розу ветров на основе данных excel. Не могу разобраться с callback, как обьединить listbox и popup menu, как построить полярную гистограмму.

Нужно построить розу ветров на основе данных excel. Не могу разобраться с callback, как обьединить listbox и popup menu, как построить полярную гистограмму.

Теги

    06.11.2020

    Комментарии

    • aBoomest
      aBoomest+942.89
      6.11.2020 14:57

      1. Гистограмма

      2. Для начала давайте разберем что там с callback?

      • Ilja_Golikov
        Ilja_Golikov0.00
        6.11.2020 15:34

        Сейчас у меня такой код, нужно чтобы при выборе месяца в листбоксе появлялись дни этого месяца

        • aBoomest
          aBoomest+942.89
          7.11.2020 13:53

          В раскрывающемся списке у вас выбирается месяц. Значение Value меняется в соответствии с выбранным пунктом уже заполняете listbox.

          • Ilja_Golikov
            Ilja_Golikov0.00
            7.11.2020 13:55

            Не понимаю, как это должно выглядить в коде?

            • aBoomest
              aBoomest+942.89
              7.11.2020 15:06
              Data.DotArray1 = {'sdghgdh','sdf','sdfg fdgfdg','sdfgsdfgsdfgsdfg'};
              Data.DotArray2 = {'sdgh','sd','sd fddg','sdfgdfg'};
              
              . . . . . . . 
                                
              hCB = uicontrol(hForm,'style','popupmenu',...
                                    'Position',[5 150 90 16],...
                                    'Callback',{@CallBackCB,hLB,Data},...
                                    'String',['Line 1'; 'Line 2'],...
                                    'Value',LineNum);
              					  
              . . . . . . .
              					  
              function CallBackCB(hObject, eventdata, cbListBox, cbData)
              cbIndex = get(hObject,'Value');
              switch cbIndex
              case 1  
                  set(cbListBox,'String',cbData.DotArray1);
              case 2  
                  set(cbListBox,'String',cbData.DotArray2);
              end;
                  
              end