• Регистрация
Ilja_Golikov
Ilja_Golikov0.00
н/д
  • Написать
  • Подписаться

MatLab GUI

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

Файлы

  • MATLAB.xlsx
  • KOOD.m
  • Снимок экрана 2020-11-05 в 22.58.17.png
  • Снимок экрана 2020-11-05 в 22.57.57.png

Теги

    06.11.2020

    Лучший ответ

    • aBoomest+371.90
      7.11.2020 12:00
      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

    Ответы

    • aBoomest
      aBoomest+371.90
      6.11.2020 17:57

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

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

      • Ilja_Golikov
        Ilja_Golikov0.00
        6.11.2020 18:34

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

        • aBoomest
          aBoomest+371.90
          7.11.2020 16:53

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

          • Ilja_Golikov
            Ilja_Golikov0.00
            7.11.2020 16:55

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

            • aBoomest
              aBoomest+371.90
              7.11.2020 18: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