Перейти к содержанию

Не могу разобраться с Matlab


ВикторТёркин

Рекомендуемые сообщения

Для выполнения лабораторной работы по ТАУ (Исследование устойчивости по Гурвицу) нужно использовать:

function [Ust, Mnrs, Mtrx] = raus_gur(D)

 

  if isa(D,'tf')

   [~,D]=tfdata(D,'v');

  end

  n=length(D)-2;

  Dr=[D zeros(1,n)];

A=flipud(reshape(Dr,2,[]));

Mtrx=cell2mat(arrayfun(@(x)(circshift(A',x))',(0:n/2)',"UniformOutput",false));

Mnrs=cell2mat(arrayfun(@(x)det(Mtrx(1:x,1:x)),(2:n)',"UniformOutput",false));

Z='';

if any(Mnrs<0)

    Z='не ';

end

Ust=['система ',Z,'устойчива'];

end

Но при вводе всегда выдаёт ошибку

??? function [Ust, Mnrs, Mtrx] = raus_gur(D)
Error: Function definitions are not permitted in this context. Версия матлаб 7.11.0(R2010b)

Ссылка на комментарий
Поделиться на другие сайты

@ВикторТёркин, поиском пользоваться не пробовали?

Вы пытаетесь определить функцию.

В вашей версии матлаб функция определяется в отдельном файле с расширением .m и именем, совпадающем с именем функции. То есть в вашем случае raus_gur.m

  • Like (+1) 1
Ссылка на комментарий
Поделиться на другие сайты

  16.04.2024 в 20:11, andrew75 сказал:

@ВикторТёркин, поиском пользоваться не пробовали?

Вы пытаетесь определить функцию.

В вашей версии матлаб функция определяется в отдельном файле с расширением .m и именем, совпадающем с именем функции. То есть в вашем случае raus_gur.m

Expand  

Спасибо. Видимо, плохо пользовался. Но теперь выдаёт такую ошибки Error: File: raus_gur.m Line: 8 Column: 56 и The input character is not valid in MATLAB statements or expressions.

Получается, что присутствуют недопустимые символы? Предлагается вариант решения проблемы - на английской раскладке ввести символы заново, но тщетно. Либо просто в  самом коде ошибка?

function [Ust, Mnrs, Mtrx] = raus_gur(D)
if isa(D,'tf')
   [~,D]=tfdata(D,'v');
end
n=length(D)-2;
Dr=[D zeros(1,n)];
A=flipud(reshape(Dr,2,[]));
Mtrx=cell2mat(arrayfun(@(x)(circshift(A',x))',(0:n/2)',"UniformOutput",false));
Mnrs=cell2mat(arrayfun(@(x)det(Mtrx(1:x,1:x)),(2:n)',"UniformOutput",false));
Z='';
if any(Mnrs<0)
    Z='не ';
end
Ust=['система ',Z,'устойчива'];
end
 

Ссылка на комментарий
Поделиться на другие сайты

Отсчитываете 56-й символ в 8 строке. Видите что это двойная кавычка. Используете поиск и узнаете что использовать двойные кавычки можно только с версии 2017а.

 

P.S. я матлаб не знаю вообще. Но поскольку он достаточно распространен, то поиск обычно помогает.

Изменено пользователем andrew75
  • Like (+1) 1
Ссылка на комментарий
Поделиться на другие сайты

Пожалуйста, войдите, чтобы комментировать

Вы сможете оставить комментарий после входа в



Войти
  • Похожий контент

    • LeoWels
      От LeoWels
      Этот вирус давно уже в системе не могу никак избавиться от него Касперский находит его но не может удалить после выполнения лечения система уходит в перезагрузку 
      CollectionLog-2024.12.28-16.07.zip
    • NaaR
      От NaaR
      Добрый день!
      Не получается самостоятельно удалить HEUR:Trojan.Multi.GenBadur.genw . После перезагрузки обнаруживается снова.
      Буду признателен за помощь. Спасибо.CollectionLog-2024.11.01-17.38.zip
    • Belzak
      От Belzak
      Здравствуйте, у меня такая- же проблема, вот мой файл
      WIN-GSIH82VECDJ_2024-10-11_22-13-38_v4.99.2v x64.7z
       
      Сообщение от модератора Mark D. Pearlstone Перемещено из темы.
    • monwron
      От monwron
      В процессе установки антивируса просит перезагрузить пк, перезагружаю, продолжаю установку антивируса и далее его нет НИГДЕ в системе. Ремоут тулом пк проверял, чето там нашел и удалил, но проблему не решило
      Помогите пожалуйста!
       
      CollectionLog-2024.11.15-02.50.zip
      FRST.txt Addition.txt
    • Ярослав Ферхов
      От Ярослав Ферхов
      Антивирус жаловался на троян, я нажал "Лечить с перезагрузкой" , он его вроде вылечил, но после перезагрузки вирус снова появился. Как его вылечить? 

×
×
  • Создать...