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

При расчёте и выводе значений в ячейку типа 'numeric' выдаёт ошибку в App Designer

16.11.2020

Здравствуйте. Помогите, пожалуйста, найти решение плоблемы:

При расчёте и выводе значений в ячейку типа 'numeric' выдаёт ошибку в App Designer:
"Error using matlab.ui.control.internal.model.AbstractNumericComponent/set.Value (line 185)
'Value' must be a double scalar within the range of 'Limits'."

Теги

    16.11.2020

    Ответы

    • aBoomest
      aBoomest+942.89
      16.11.2020 13:05

      А то что вы имеете какой тип?

      • Н/Д
        Н/Д0.00
        16.11.2020 22:01

        Я имела ввиду что ячейка редактируемая, не текстовая, а для цифр.

        Проблема в том, что расчётное значение относится к классу double, а ошибка всё равно выскакивает

        • aBoomest
          aBoomest+942.89
          17.11.2020 05:57

          Double - тип.
          Ну что-то явно не совпадет.  Ну и скрипт можно гляеуть.

          • Н/Д
            Н/Д0.00
            17.11.2020 06:35
            pl=p1+p2+p3+p4+p5;
            pr=(pr1+pr2+pr3+pr4+pr5)/pl;
            
            qw=fl1+fl2+fl3+fl4+fl5;
            qs=(qs1+qs2+qs3+qs4+qs5)/qw;
            
                            
            T=[pl, pr, qw,qs];
            T=array2table(T,'VariableNames',{'plav' 'pcr' 'qw' 'qs'});
                       
            metl=load('metl.mat');metl=metl.metl;
            yfitmetl=metl.predictFcn(T);
            app.metl.Value=yfitmetl;

            На последней строке, как раз, выдаёт ошибку. 

            При том, что до этого работало, а потом резко перестало, когда математику добавила.

            А переменная  yfitmetl и так является double (я проверяла), ошибка всё равно возникает

            • aBoomest
              aBoomest+942.89
              17.11.2020 18:45

              вероятно все кроется в predictFcn  и в том что такое yfitmetl и app.metl.Value

              добавили математику - это predictFcn ?

              • kurguz
                kurguz+270.00
                23.11.2020 12:56

                Проверьте, что yfitmetl - скаляр.

                • Marat
                  Marat+208.00
                  2.12.2020 12:10

                  Ошибка достаточно точно описана, хоть и по-английски:

                  'Value' must be a double scalar within the range of 'Limits'

                   

                  У вас тут три условия. Значение переменной, присваемое полу Value должно быть:

                  а) double

                  б) скалярным

                  в) в пределах, указанных в поле Limits

                   

                  Ищите, что из этого не соответвтует действительности