Форум кафедры Техники и Электрофизики Высоких Напряжений

Онлайн-сообщество ТВНщиков
Гостям форума:

Добро пожаловать на форум по технике высоких напряжений!
Для получения доступа ко всем разделам необходимо зарегистрироваться


Текущее время: 16 окт 2019, 09:05

Часовой пояс: UTC + 3 часа




Начать новую тему Ответить на тему  [ Сообщений: 40 ]  На страницу 1, 2  След.
Автор Сообщение
 Заголовок сообщения: Вопрос по среде Matlab
СообщениеДобавлено: 13 янв 2014, 18:41 
Не в сети
Аватара пользователя

Зарегистрирован: 12 сен 2012, 09:13
Сообщения: 75
Откуда: Москва
Мы в прошлом семестре изучали чтение из файла, а можно ли организовать ввод данных в процессе выполнения программы?
Вот, например, выполняется какая-то программа, что-нибудь считает, выводит, потом просит что-то типа "введите коэффицент", я ввожу, и программа дальше считает.
Такое можно реализовать на Матлабе?

_________________
он же Рассол, Совтол, Бензол и ещё 9000 технических жидкостей...


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Вопрос по среде Matlab
СообщениеДобавлено: 14 янв 2014, 14:40 
Не в сети

Зарегистрирован: 10 сен 2010, 22:09
Сообщения: 282
Откуда: из Д3 я
Здравствуйте.
Почитайте про функцию input
На форуме в подразделе, посвящённом MATLAB, есть тема, в которой есть ответ на ваш вопрос. В частности, этот пост: http://www.tvn-moscow.ru/forum/viewtopi ... =142#p1194


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Вопрос по среде Matlab
СообщениеДобавлено: 21 окт 2014, 15:16 
Не в сети

Зарегистрирован: 24 окт 2012, 03:32
Сообщения: 138
Откуда: Э-04-10
Здравствуйте. Вот какой вопрос.
Стоит задача, считать n-ое количество анонимных функций. Можно ли их считать так, чтобы в конечном счете это выглядело примерно следующим образом (то есть все анонимные функции столбиком в одной переменной типа function handle):
Код:
f=@(x) [x(1)^3/49+sqrt(x(2))-10; 2*x(1)+x(2)/9-15]

У меня в голове только вот такой вариант
Код:
for i=1:n
  fStr=input(sprintf('\nВведите выражение %d-ой функции нескольких переменных: ',i),'s');
  func{i}=eval(['@(x)' fStr]);
end
Но это никак не близко к тому, что нужно :-(
И как массив ячеек привести к такому виду тоже не понимаю. Помогите, пожалуйста :hysteric:

_________________
Rise and rise again, until lambs became lions.


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Вопрос по среде Matlab
СообщениеДобавлено: 23 окт 2014, 12:45 
Не в сети
Site Admin
Аватара пользователя

Зарегистрирован: 03 сен 2008, 17:00
Сообщения: 339
Откуда: Д-4а
А вместо вектора анонимных функций, вычисляющих скалярное значение, нельзя использовать анонимную функцию, вычисляющую вектор?
Я правильно понял Ваш вопрос?


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Вопрос по среде Matlab
СообщениеДобавлено: 25 окт 2014, 15:48 
Не в сети
Неунывающая
Аватара пользователя

Зарегистрирован: 19 окт 2009, 13:48
Сообщения: 852
Откуда: Д-3
Leonid писал(а):
А вместо вектора анонимных функций, вычисляющих скалярное значение, нельзя использовать анонимную функцию, вычисляющую вектор?
Я правильно понял Ваш вопрос?

Убил :fire:
:bebebe:


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Вопрос по среде Matlab
СообщениеДобавлено: 25 окт 2014, 21:59 
Не в сети

Зарегистрирован: 24 окт 2012, 03:32
Сообщения: 138
Откуда: Э-04-10
Leonid писал(а):
А вместо вектора анонимных функций, вычисляющих скалярное значение, нельзя использовать анонимную функцию, вычисляющую вектор?
Я правильно понял Ваш вопрос?

Хм. А как так одна функция может выдавать несколько значений?

_________________
Rise and rise again, until lambs became lions.


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Вопрос по среде Matlab
СообщениеДобавлено: 25 окт 2014, 22:05 
Не в сети

Зарегистрирован: 24 окт 2012, 03:32
Сообщения: 138
Откуда: Э-04-10
Тогда вот какой вопрос. Пусть есть анонимная функция
Код:
d=@(x) x(1)-x(2)

Есть ли команда, которая выведет нам следующее:
Код:
 x(1)-x(2)
?

_________________
Rise and rise again, until lambs became lions.


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Вопрос по среде Matlab
СообщениеДобавлено: 26 окт 2014, 03:08 
Не в сети
Site Admin

Зарегистрирован: 03 сен 2008, 16:09
Сообщения: 4285
Откуда: Д-3
Afanasyev писал(а):
Leonid писал(а):
А вместо вектора анонимных функций, вычисляющих скалярное значение, нельзя использовать анонимную функцию, вычисляющую вектор?
Я правильно понял Ваш вопрос?

Хм. А как так одна функция может выдавать несколько значений?

Много есть способов – структурой, через список выходных переменных или, как предлагает Л.Л., вектором. Конкретнее ответить нельзя, потому что в самом вопросе нет конкретики – задачу не озвучили, только намекнули на нее. Я намека не понял и промолчал изначально =)


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Вопрос по среде Matlab
СообщениеДобавлено: 26 окт 2014, 03:10 
Не в сети
Site Admin

Зарегистрирован: 03 сен 2008, 16:09
Сообщения: 4285
Откуда: Д-3
Afanasyev писал(а):
Тогда вот какой вопрос. Пусть есть анонимная функция
Код:
d=@(x) x(1)-x(2)

Есть ли команда, которая выведет нам следующее:
Код:
 x(1)-x(2)
?

Евгений, что Вы понимаете под термином "команда"? Разве "x(1)-x(2)" не команда, которая выводит значение разности первых двух элементов вектора?


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Вопрос по среде Matlab
СообщениеДобавлено: 26 окт 2014, 03:23 
Не в сети
Site Admin

Зарегистрирован: 03 сен 2008, 16:09
Сообщения: 4285
Откуда: Д-3
Afanasyev писал(а):
Стоит задача, считать n-ое количество анонимных функций. Можно ли их считать так, чтобы в конечном счете это выглядело примерно следующим образом (то есть все анонимные функции столбиком в одной переменной типа function handle):
Код:
f=@(x) [x(1)^3/49+sqrt(x(2))-10; 2*x(1)+x(2)/9-15]


Что значит "считать" функции? Подсчитывать их количество? Считывать их код из файла? Вычислять значения с помощью этих функций?

Такая функциональность Вам требуется?
Код:
f = {@(x)x.^2;
     @(x)x.^3;
     @(x)x.^4};
[f{1}(2) f{2}(2) f{3}(2)]
ans =
     4     8    16


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Вопрос по среде Matlab
СообщениеДобавлено: 26 окт 2014, 22:25 
Не в сети
Site Admin
Аватара пользователя

Зарегистрирован: 03 сен 2008, 17:00
Сообщения: 339
Откуда: Д-4а
Afanasyev писал(а):
Хм. А как так одна функция может выдавать несколько значений?

В виде вектора, конечно!


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Вопрос по среде Matlab
СообщениеДобавлено: 29 окт 2014, 11:26 
Не в сети
Site Admin

Зарегистрирован: 03 сен 2008, 16:09
Сообщения: 4285
Откуда: Д-3
Все, Афанасьев утратил интерес к беседе ))


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Вопрос по среде Matlab
СообщениеДобавлено: 29 окт 2014, 11:33 
Не в сети
Аватара пользователя

Зарегистрирован: 12 сен 2012, 09:13
Сообщения: 75
Откуда: Москва
Ой, а можно тут ещё вопросы позадавать?
Леонид Леонидович, я тут делал домашнее задание по численным методам и забыл требования.
Задание звучало так: "Сохранить в переменной имена всех директорий в текущей директории, используя команду dir".
Это нужно в одну строчку сделать или можно в две?
А то в одну никак не получается, а в две вполне себе работает всё.

_________________
он же Рассол, Совтол, Бензол и ещё 9000 технических жидкостей...


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Вопрос по среде Matlab
СообщениеДобавлено: 29 окт 2014, 12:24 
Не в сети
Site Admin
Аватара пользователя

Зарегистрирован: 03 сен 2008, 17:00
Сообщения: 339
Откуда: Д-4а
Название темы тянет, как минимум, на название целого форума. (Вы, Тосол, я смотрю, потрудились. :lol: )
Поэтому здесь можно задавать любые вопросы, которые так или иначе относятся к MATLAB. (Очень удобно для поиска. :ahtung: )
Одной строчкой записать можно, одной командой (одним выражением) - нет.


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Вопрос по среде Matlab
СообщениеДобавлено: 29 окт 2014, 12:47 
Не в сети
Site Admin

Зарегистрирован: 03 сен 2008, 16:09
Сообщения: 4285
Откуда: Д-3
Первый случай обращения к антифризу на "вы" детектед.


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Вопрос по среде Matlab
СообщениеДобавлено: 29 окт 2014, 22:05 
Не в сети

Зарегистрирован: 24 окт 2012, 03:32
Сообщения: 138
Откуда: Э-04-10
dmatveev писал(а):
Все, Афанасьев утратил интерес к беседе ))

:-D
Да нет, просто проверить эту штуку:
Код:
f = {@(x)x.^2;
     @(x)x.^3;
     @(x)x.^4};
[f{1}(2) f{2}(2) f{3}(2)]
ans =
     4     8    16
не хватало времени :-)
Вот, сажусь за MATLAB)

_________________
Rise and rise again, until lambs became lions.


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Вопрос по среде Matlab
СообщениеДобавлено: 29 окт 2014, 22:38 
Не в сети

Зарегистрирован: 24 окт 2012, 03:32
Сообщения: 138
Откуда: Э-04-10
Леонид Леонидович, а завтра можно будет защищаться?

_________________
Rise and rise again, until lambs became lions.


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Вопрос по среде Matlab
СообщениеДобавлено: 29 окт 2014, 23:34 
Не в сети
Site Admin

Зарегистрирован: 03 сен 2008, 16:09
Сообщения: 4285
Откуда: Д-3
Afanasyev писал(а):
dmatveev писал(а):
Все, Афанасьев утратил интерес к беседе ))

:-D
Да нет, просто проверить эту штуку:
Код:
f = {@(x)x.^2;
     @(x)x.^3;
     @(x)x.^4};
[f{1}(2) f{2}(2) f{3}(2)]
ans =
     4     8    16
не хватало времени :-)
Вот, сажусь за MATLAB)

А зачем ее проверять, не доверяете? :lol:


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Вопрос по среде Matlab
СообщениеДобавлено: 30 окт 2014, 01:15 
Не в сети
Site Admin
Аватара пользователя

Зарегистрирован: 03 сен 2008, 17:00
Сообщения: 339
Откуда: Д-4а
Afanasyev писал(а):
Леонид Леонидович, а завтра можно будет защищаться?

Нет.


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Вопрос по среде Matlab
СообщениеДобавлено: 11 ноя 2014, 22:59 
Не в сети

Зарегистрирован: 27 сен 2012, 09:57
Сообщения: 76
Здравствуйте!
Подскажите, пожалуйста, как можно в матлабе задать в качестве входного параметра анонимной функции другую анонимную функцию?

вот что я имею ввиду: у меня есть параметр
Код:
r=@(x) sqrt((L-x).^2-a^2)
Я его написал, как анонимную функцию, т.к. он мне много раз будет нужен в других функциях.

Например
Код:
f1=@(x)1/r
f2=@(x)1/(r^2)



Возможно ли это?

_________________
“If you can't fly then run, if you can't run then walk, if you can't walk then crawl, but whatever you do you have to keep moving forward.”


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 40 ]  На страницу 1, 2  След.

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Перейти:  
cron
Создано на основе phpBB® Forum Software © phpBB Group
Русская поддержка phpBB