Форум программистов, компьютерный форум, киберфорум
Наши страницы
Matlab
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.62/21: Рейтинг темы: голосов - 21, средняя оценка - 4.62
csALFAvmk
0 / 0 / 0
Регистрация: 01.12.2012
Сообщений: 22
1

Как создать массив функций?

18.12.2012, 01:09. Просмотров 4051. Ответов 5
Метки нет (Все метки)

Можно ли сделать массив функций? Т.е. не 2-х мерный массив по i и j, а массив по j, каждым элементом которого является функция?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
18.12.2012, 01:09
Ответы с готовыми решениями:

Создать символьный массив, состоящий из функций
Здравствуйте. Имеется символьный массив из углов, которые потом используются в...

Как создать переменный массив
Всем доброго времени суток! Подскажите пожалуйста как создать массив размера,...

Как создать массив из точек фигуры
Здравствуйте! У меня есть фигура из треугольников, нарисованная с помощью...

Нужно упорядочить одномерный массив с помощью функций.
Помогите плиз. Нужно упорядочить одномерный массив. Я знаю как это сделать, но...

создать массив
Необходимо создать массив из 30000 случайных чисел (рандомно), упорядочить их...

5
Зосима
4929 / 3301 / 312
Регистрация: 02.04.2012
Сообщений: 6,207
Записей в блоге: 15
Завершенные тесты: 1
19.12.2012, 11:35 2
Можно так:
Matlab M
1
2
3
4
5
6
7
8
clear, clc
% сохраняем ф-ции в массив ячеек.
F(1) = {@(x) x.^2-2}; 
F(2) = {@(x) x*exp(-x.^2)};
F(3) = {@(x) sin(x)};
f = F{1} % вытаскиваем содержимое 1й ячейки
x = 0:5;
f(x)
Еще можно создать несколько файл-функций вроде dfun1, dfun2, ..., dfun15
А потом использовать их в ode:
Matlab M
1
2
3
4
5
6
for i=1:15
T = [0 10];
y0 = [1 -1];
fn = ['dfun',num2str(i)]; % формируем имя ф-ции
[t y] = ode45(fn,T,y0)
% и т.д.
0
csALFAvmk
0 / 0 / 0
Регистрация: 01.12.2012
Сообщений: 22
19.12.2012, 23:24  [ТС] 3
А можно пример того, как заполнить массив функций в цикле.

если функция cos(x*i), где i это номер функции в массиве.
Так?
Matlab M
1
2
3
for i=1:10
F(i)={@(x) cos(x*i)};
end
Добавлено через 9 минут
Вот такой скрипт не работает:
Matlab M
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
    hold on
    for j=1:10
        phi_j(j)={@(x) cos(x*j)};
 
    end
    x=0:0.1:2*pi;
    
    for j=1:10
        f(j)=phi_j{j};
    end
    
    for j=1:10
        g=f{j}
        plot(x,g(x));
    end
    hold off
А вот такой работает
Matlab M
1
2
3
4
5
6
7
8
9
10
11
12
    hold on
    for j=1:10
        phi_j(j)={@(x) cos(x*j)};
 
    end
    x=0:0.1:2*pi;
    
    for j=1:10
        f=phi_j{j};
        plot(x,f(x));
    end
    hold off
Отсюда вопрос, как одному массиву функций присвоить другой?
0
Зосима
4929 / 3301 / 312
Регистрация: 02.04.2012
Сообщений: 6,207
Записей в блоге: 15
Завершенные тесты: 1
20.12.2012, 14:04 4
Цитата Сообщение от csALFAvmk Посмотреть сообщение
Вот такой скрипт не работает:
Цитата Сообщение от csALFAvmk Посмотреть сообщение
А вот такой работает
Ну все правильно!
Цитата Сообщение от csALFAvmk Посмотреть сообщение
одному массиву функций присвоить другой?
Чото не понял, зачем?
phi_i = phi_j
0
Mykita
0 / 0 / 0
Регистрация: 12.10.2017
Сообщений: 44
05.11.2017, 17:21 5
Можна на си++?
0
Centurio
Модератор
730 / 662 / 188
Регистрация: 13.09.2015
Сообщений: 2,373
06.11.2017, 05:56 6
csALFAvmk, я бы с тем примером, который вы привели, так бы не заморачивался. Можно без циклов и массивов ячеек обойтись.
Matlab M
1
2
3
4
5
x=0:0.1:2*pi;
jj=1:10;
[X,J]=meshgrid(x,jj);
F=cos(X.*J);
plot(x,F)
0
06.11.2017, 05:56
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
06.11.2017, 05:56

Создать массив
Здравствуйте. Подскажите, пожалуйста, как создать матрицу размером (1,32),...

Создать новый массив NEW
Дано: VEC1:=(1 3.9 -2.6) VEC2:=(-7 4.6 -11 13) VEC3:=(6.9 -3 12.3 6.2 1)...

создать новый массив
Вечер добрый! Мне тяжело разобраться с логикой работы в Матлабе, поэтому...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru