У меня есть следующий код, реализующий PSO, но он не работает с простой функцией: norm (A), где A - матрица.
Это код,
fun=@(X) norm([X(1,1),X(1,2); X(2,1), X(2,2)]);
rng default % For reproducibility
lb = [-10,-15];
ub = [15,20];
nvars = 4;
x = particleswarm(fun,nvars,lb,ub)
Как я мог это исправить?
0
JuanMuñoz
22 Окт 2019 в 14:42
1 ответ
Лучший ответ
Просто измените обозначение функции как элементы вектора.
fun=@(X) norm([X(1),X(2), X(3), X(4)]);
rng default % For reproducibility
lb = [-10,-15];
ub = [15,20];
nvars = 4;
x = particleswarm(fun,nvars,lb,ub)
0
JuanMuñoz
30 Окт 2019 в 14:31
Похожие вопросы
Новые вопросы
matlab
MATLAB - это высокоуровневая языковая и интерактивная среда программирования для численных расчетов и визуализации, разработанная MathWorks. Не используйте оба тега [matlab] и [octave], если явно не задан вопрос о сходстве или различии между ними. При использовании этого тега, пожалуйста, укажите версию MATLAB, с которой вы работаете (например, R2017a).