To store Output of a user defined function in an array

17 views (last 30 days)
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?

Answers (1)

KSSV
KSSV on 19 Sep 2020
Edited: KSSV on 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 Comments
Image Analyst
Image Analyst on 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.

Sign in to comment.

Categories

Find more on Just for fun in Help Center and File Exchange

Community Treasure Hunt

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

Start Hunting!