Ниже приведен простой пример кода, который я пытаюсь реализовать (используя его в качестве доказательства концепции). Я пытаюсь создать массив (d)
с 5 функциями/уравнениями и увеличиваться на i
и в каждом слоте i
. Когда я запускаю код, "i"
в термине x/i
не увеличивается с циклом for.
Я пытаюсь вывести этот код в виде массива, и каждый элемент в массиве = [x/1, x/2, x/3, x/4, x/5]
. Ниже приведен код.
for i = 1:5
d{i} = @(x) x/i
end
Вы можете использовать функцию subs()
(символическая замена), чтобы заставить переменную i
оцениваться/заменяться в уравнении. Затем можно использовать функцию matlabFunction()
, чтобы убедиться, что результаты представлены в виде дескрипторов функций/анонимных функций.
for i = 1:5
d{i} = matlabFunction(subs(@(x) x/i,i,i));
end
Выполнено с использованием MATLAB R2019b
Зачем тебе это? Обычно есть лучшее решение, чем массив функций, особенно если эти функции можно сгенерировать в цикле.