2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки




Начать новую тему Ответить на тему
 
 MATLAB: поэлементное применение функции к вектору
Сообщение11.02.2014, 13:54 


12/06/12
25
Здравствуйте!
Подскажите, пожалуйста, с MATLAB.
У меня есть такая функция:
Код:
function u0 = icfun(x)
global a
global ll
global beta
global gamma
global alpha
u0 = [0.01*(x*(ll - x) + a*ll/beta)/(ll^2/4 + a*ll/beta); 0.01*(x*(ll - x) + alpha*ll/gamma)/(ll^2/4 + alpha*ll/gamma)];


Она сохранена в файл icfun.m.

Когда я вызываю её для какого-то числа, например, так:
Код:
icfun(0)

то она считает результирующий вектор.

Я хочу построить график этой функции.
Если написать так:
Код:
x = linspace(0,ll);
icfun(x)

то MATLAB выдаёт ошибку. Я так понимаю, что он воспринимает аргумент как вектор.
А мне хотелось бы, чтобы он применил эту функцию к каждому элементу вектора.
Если это сделать со стандартными функциями (например, sin), то MATLAB именно так и делает.

По-моему, с аналогичной ситуацией я сталкивался при работе с Octave.
Заранее благодарен.

 Профиль  
                  
 
 Re: MATLAB: поэлементное применение функции к вектору
Сообщение11.02.2014, 14:05 


05/09/12
2587
Подозреваю, что суть в отличии операций
Код:
*
и
Код:
.*

 Профиль  
                  
 
 Re: MATLAB: поэлементное применение функции к вектору
Сообщение11.02.2014, 14:35 


12/06/12
25
А нельзя как-то построить график этой функции, не ставя точку перед арифметическими операциями?
В принципе, можно и написать цикл для вычисления вектора значений функции.
А по-другому как-нибудь можно?

 Профиль  
                  
 
 Re: MATLAB: поэлементное применение функции к вектору
Сообщение11.02.2014, 14:39 
Экс-модератор
Аватара пользователя


23/12/05
12063
цикл - это "плохой" путь. Вариант с точкой - хороший. Непонятно, почему он Вам не нравится.

 Профиль  
                  
 
 Re: MATLAB: поэлементное применение функции к вектору
Сообщение11.02.2014, 16:45 
Заслуженный участник
Аватара пользователя


11/04/08
2748
Физтех
SuperH1 в сообщении #825263 писал(а):
А нельзя как-то построить график этой функции, не ставя точку перед арифметическими операциями?

Можно, см. функцию arrayfun. Первые аргумент -- указатель на функцию, а второй -- нужный массив.

http://www.mathworks.com/help/matlab/ref/arrayfun.html

 Профиль  
                  
 
 Re: MATLAB: поэлементное применение функции к вектору
Сообщение11.02.2014, 23:49 


12/06/12
25
Большое спасибо за помощь!

 Профиль  
                  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 6 ] 

Модераторы: Karan, Toucan, PAV, maxal, Супермодераторы



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

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


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

Найти:
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group