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

Не могу разобраться с 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
Ссылка на комментарий
Поделиться на другие сайты

7 часов назад, andrew75 сказал:

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

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

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

Спасибо. Видимо, плохо пользовался. Но теперь выдаёт такую ошибки 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
Ссылка на комментарий
Поделиться на другие сайты

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

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



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

    • Vasikir
      Автор Vasikir
      Не уверен насчёт причины. Также были взломаны аккаунты telegram, discord, steam, google
      CollectionLog-2025.07.05-15.14.zip
    • triller
      Автор triller
      помогите кто-нибудь!!закачала пробную версию,активировать не могу!
    • Alexey82
      Автор Alexey82
      Доброго вечера.
      Не получается отформатировать sd карту через адаптер micro sd.
      Поменял адаптер, поменял sd карту, пробовал форматировать через командную строку win 10, панель управления дисками, через Мой компьютер - результат один - диск защищен от записи.
      Никогда такой проблемы не было, столкнулся сегодня, впервые.
      Из проишествий - лечили вирус, описано здесь
       
      Прошу подсказать, что же такое может быть.
    • alksmn
      Автор alksmn
      CollectionLog-2025.07.09-07.42.zip
      Здравствуйте! 
      Антивирус находит и удаляет, но при запуске хрома, опять вылетает
      Событие: Объект удален
      Пользователь: MAG\lksmn
      Тип пользователя: Инициатор
      Имя приложения: chrome.exe
      Путь к приложению: C:\Program Files\Google\Chrome\Application
      Компонент: Файловый Антивирус
      Описание результата: Удалено
      Тип: Рекламное приложение
      Название: not-a-virus:HEUR:AdWare.JS.ExtRedirect.gen
      Точность: Частично
      Степень угрозы: Средняя
      Тип объекта: Файл
      Имя объекта: bundle.js
      Путь к объекту: C:\Users\lksmn\AppData\Local\Google\Chrome\User Data\Default\Extensions\adlpodnneegcnbophopdmhedicjbcgco\3.5.5_0\caa
      MD5 объекта: 81870BBC34F5D9A911DC2B0B03B7876A
    • Андрей2029
      Автор Андрей2029
      Здравствуйте, товарищи. Проблема следующая. Поставил впервые за много десятков лет Оперу вместо Хрома. Последнюю версию, разумеется. Особо не ковырялся в настройках, стал пользоваться. И заметил, что не могу попасть ни на один сайт с Cloudflare - проверка на человека просто постоянно обновляется, не пуская на страницу. Например, вот Aescripts:

       
      Разумеется, я испробовал все возможные решения, что были в сети, будучи уверенным, что проблема либо в самой Опере (её настройках, которые я не менял), либо в VPN (которого у меня нет и в Опере он не включен), DNS и прочем. Все проверил, посмотрел, попереключал и ничего не помогает. При этом Edge на те же сайты пускает без вопросов. Пошёл было писать багрепорт в техподдержку Оперы, пока не додумался отключить Kaspersky Plus. И, о чудо, Cloudflare сразу же запустил на проблемный сайт. Включил Касперского, тыкнулся на другой сайт - опять тя же проблема. 
       
      Подскажите, куда смотреть, что копать, и почему проблема именно с Оперой? Хром псотавил назад - опять проблемы нет. Чем Опера так провинилась? Какие настройки посмотреть в Каспере, чтобы решить проблему?
×
×
  • Создать...