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

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

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


Текущее время: 23 окт 2018, 14:38

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




Начать новую тему Ответить на тему  [ Сообщений: 40 ]  На страницу Пред.  1, 2
Автор Сообщение
 Заголовок сообщения: Re: Вопрос по среде Matlab
СообщениеДобавлено: 12 ноя 2014, 08:01 
Не в сети
Site Admin

Зарегистрирован: 03 сен 2008, 16:09
Сообщения: 4256
Откуда: Д-3
Masha писал(а):
Здравствуйте!
Подскажите, пожалуйста, как можно в матлабе задать в качестве входного параметра анонимной функции другую анонимную функцию?

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

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



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


Код:
f1=@(x)1/r(x)
f2=@(x)1/(r(x)^2)

Вот так вызывать не годится?


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

Зарегистрирован: 27 сен 2012, 09:57
Сообщения: 76
dmatveev писал(а):
Код:
f1=@(x)1/r(x)
f2=@(x)1/(r(x)^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.”


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

Зарегистрирован: 03 сен 2008, 16:09
Сообщения: 4256
Откуда: Д-3
You're welcome!

По-русски, кстати, пишете прекрасно. Респект :-)


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

Зарегистрирован: 27 сен 2012, 09:57
Сообщения: 76
dmatveev писал(а):
По-русски, кстати, пишете прекрасно. Респект :-)


Thank you, sir!

Nonetheless, I would, prefer writing in English where applicable on this forum :-D . Constructing a grammatically correct Russian sentence proves time consuming for me, an expense I can not always afford.

_________________
“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.”


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

Зарегистрирован: 24 окт 2012, 03:32
Сообщения: 138
Откуда: Э-04-10
Леонид Леонидович, а в 3-ей лабораторной работе в каком виде должен быть отчет?
Нужно увеличивать N, пока точность не будет больше 1e-6? Или сделать как в описании лабораторной работы: в конечном счете построить графики тока и напряжения от времени при фиксированных N=[ 200 400 800 1600 3200 6400 12800]?

_________________
Rise and rise again, until lambs became lions.


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

Зарегистрирован: 24 окт 2012, 03:32
Сообщения: 138
Откуда: Э-04-10
Доброй ночи! Изучаю Матлаб, и наткнулся на ошибку, но хоть убейте, не могу понять с чем она связана.. Ввожу следующие строки:
Код:
 a=[struct('x',{1,2,3},'y',{4, 5, 6},'name',{'точка1', 'точка2', 'точка3'})]
 fprintf('x: %.2f; y: %.2f; name: %s\n',a.x,a.y,a.name)

В результате получаю следующее:
Код:
x: 1.00; y: 2.00; name: Warning: The argument for the %s format specifier must be of type char (a string).

x: 4.00; y: 5.00; name: Warning: The argument for the %s format specifier must be of type char (a string).

x: 1090.00; y: 1086.00; name: чка1
x: 1090.00; y: 1086.00; name: чка2
x: 1090.00; y: 1086.00; name: чка3

Смотрел тип переменной name и она символьная. На что ругается не могу понять. Пробовал отдельно сделать запись по формату для переменных типа double и string все получилось, а как хочу в одну строку записать все рушится. :hysteric:
Помогите пожалуйста.. :-(

_________________
Rise and rise again, until lambs became lions.


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

Зарегистрирован: 03 сен 2008, 17:00
Сообщения: 337
Откуда: Д-4а
Цитата:
Изучаю Матлаб

Похвально! :hi:
Ответ на поверхности: посмотрите внимательно на первую строку. Она правильно выводится? Я имею в виду x и y.

Думайте, как MATLAB! :idea:

Кстати, Ваша задумка неверна изначально. Так, как Вы хотите, решить эту задачу нельзя. :stop:


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

Зарегистрирован: 24 окт 2012, 03:32
Сообщения: 138
Откуда: Э-04-10
Leonid писал(а):
Думайте, как MATLAB! :idea:

Не хватает: "Станьте MATLAB'ом" :-D (ну, как в фильмах)

Leonid писал(а):
Кстати, Ваша задумка неверна изначально. Так, как Вы хотите, решить эту задачу нельзя. :stop:

Уже понял.. Значит, буду сохранять данные по горизонтали)

_________________
Rise and rise again, until lambs became lions.


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

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


Можете пояснить? :-)
Особенно. интересует "горизонтальное сохранение данных". :swoon:

Решение Вашей задачи:
Код:
a = [struct('x',{1,2,3},'y',{4, 5, 6},'name',{'точка1', 'точка2', 'точка3'})];
arrayfun(@(z)fprintf('x: %.2f; y: %.2f; name: %s\n', z.x, z.y, z.name), a);


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

Зарегистрирован: 24 окт 2012, 03:32
Сообщения: 138
Откуда: Э-04-10
Leonid писал(а):
Afanasyev писал(а):
Уже понял.. Значит, буду сохранять данные по горизонтали)


Можете пояснить? :-)
Особенно. интересует "горизонтальное сохранение данных". :swoon:

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

_________________
Rise and rise again, until lambs became lions.


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

Зарегистрирован: 24 окт 2012, 03:32
Сообщения: 138
Откуда: Э-04-10
Leonid писал(а):
Решение Вашей задачи:
Код:
a = [struct('x',{1,2,3},'y',{4, 5, 6},'name',{'точка1', 'точка2', 'точка3'})];
arrayfun(@(z)fprintf('x: %.2f; y: %.2f; name: %s\n', z.x, z.y, z.name), a);


Кстати, спасибо! Пока не разобрался как работает, но это, определенно, поможет!

_________________
Rise and rise again, until lambs became lions.


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

Зарегистрирован: 03 сен 2008, 17:00
Сообщения: 337
Откуда: Д-4а
У нас такого не было... ещё.
Спросите на занятиях - расскажу.


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

Зарегистрирован: 24 окт 2012, 03:32
Сообщения: 138
Откуда: Э-04-10
Леонид Леонидович, еще вот какой вопрос.
Leonid писал(а):
Решение Вашей задачи:
Код:
a = [struct('x',{1,2,3},'y',{4, 5, 6},'name',{'точка1', 'точка2', 'точка3'})];
arrayfun(@(z)fprintf('x: %.2f; y: %.2f; name: %s\n', z.x, z.y, z.name), a);

Перевод на новую строку \n при записи данного кода в txt-файл не работает. То есть там сплошной текст.
Попробовал записать в doc-файл – все получилось. Как это объяснить?

_________________
Rise and rise again, until lambs became lions.


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

Зарегистрирован: 03 сен 2008, 17:00
Сообщения: 337
Откуда: Д-4а
"doc-файл" - это что?
В каком редакторе смотрели текст? В Блокноте? А вместо перевода на новую строку был квадратик, правильно?


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

Зарегистрирован: 24 окт 2012, 03:32
Сообщения: 138
Откуда: Э-04-10
Leonid писал(а):
"doc-файл" - это что?

Это файл текстового редактора Microsoft Word.
Leonid писал(а):
В каком редакторе смотрели текст? В Блокноте? А вместо перевода на новую строку был квадратик, правильно?

Да, блокнот, и вместо перевода на новую строку - ничего.
Я так понимаю, что блокнот просто не отображает этот символ, или что-то вроде того.

_________________
Rise and rise again, until lambs became lions.


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

Зарегистрирован: 03 сен 2008, 16:09
Сообщения: 4256
Откуда: Д-3
Afanasyev писал(а):
Leonid писал(а):
"doc-файл" - это что?

Это файл текстового редактора Microsoft Word.

Если Вы создаете файл с расширением doc, это не значит, что получится файл текстового редактора Microsoft Word. Загляните блокнотом внутрь любого файла Word, и сравните с содержимым файла, созданного в Matlab. В первом случае увидите бинарный файл с определенным форматом, во втором - обычный текстовый файл.


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

Зарегистрирован: 25 сен 2017, 22:53
Сообщения: 13
Откуда: Э-4м-18
Всем привет!
Как можно задать тип переменной в матлабе? Допустим, я решаю систему уравнений методом простой итерации, и получаются комплексные числа. Хотя у этой системы есть и вещественное решение, но матлаб почему-то его не выдает.


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

Зарегистрирован: 03 сен 2008, 16:09
Сообщения: 4256
Откуда: Д-3
mishanchik писал(а):
Всем привет!
Как можно задать тип переменной в матлабе? Допустим, я решаю систему уравнений методом простой итерации, и получаются комплексные числа. Хотя у этой системы есть и вещественное решение, но матлаб почему-то его не выдает.

Я так понимаю, что речь идет о решении системы нелинейных уравнений? Решение зависит от начального приближения. Изменением типа данных при неудачном начальном приближении никак не получится получить корни, отличные от тех, к которым ведет метод.

Задать тип переменной можно явно, например, так: a = uint8(1), но, ей-богу, ищите другой выход из ситуации.


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

Зарегистрирован: 25 сен 2017, 22:53
Сообщения: 13
Откуда: Э-4м-18
Да, система нелинейных уравнений.
Спасибо!


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

Зарегистрирован: 25 сен 2017, 22:53
Сообщения: 13
Откуда: Э-4м-18
Выход из ситуации нашел, применив функцию fsolve.


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

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


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

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


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

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