To store Output of a user defined function in an array

13 vues (au cours des 30 derniers jours)
Sadiq Akbar
Sadiq Akbar le 19 Sep 2020
Modifié(e) : KSSV le 3 Jan 2022
Suppose I have a user defined function which has only one input "b" and one output argument "e", e.g.
function e=user_defined(b)
global u
u=[1 2 3 4];
x1=b(1)+b(2)^2+b(3)+b(4);
x2=u(1)-u(2)^2+u(3)+u(4);
e=(abs(x1-x2)).^2;
%End of the function.
Now if I call this function from a metaheuristic algorithm, say for example Flowe Pollination algorithm and I want to save the values of e , i.e. the o/p of user_defined function in an array A and also I want to pass all the values of e to the Flower Pollination algorithm and store them there in another array B. Then I want to arrange the two arrays A and B in descending order and display them. How can i do that?

Réponses (1)

KSSV
KSSV le 19 Sep 2020
Modifié(e) : KSSV le 3 Jan 2022
If you want to call function n times and if function gives one output, to store the output in array:
B = zeros(n,1) ;
for i= 1:n
B(i) = myfunc(inputs) ;
end
  3 commentaires
Image Analyst
Image Analyst le 3 Jan 2022
It makes a column vector of zeros -- an n row-by-1 column array of all zeros. It preallocates space for the variable to make it a little faster when assigning values in the loop. It doesn't matter how it works. Just assume it gives you a column vector of zeros and don't worry about its internals.
Eleanor Stevens
Eleanor Stevens le 3 Jan 2022
Ah that makes sense. Thank you!

Connectez-vous pour commenter.

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by