To store Output of a user defined function in an array

조회 수: 12 (최근 30일)
Sadiq Akbar
Sadiq Akbar 2020년 9월 19일
편집: KSSV 2022년 1월 3일
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?

답변 (1개)

KSSV
KSSV 2020년 9월 19일
편집: KSSV 2022년 1월 3일
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
Image Analyst
Image Analyst 2022년 1월 3일
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 2022년 1월 3일
Ah that makes sense. Thank you!

댓글을 달려면 로그인하십시오.

Community Treasure Hunt

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

Start Hunting!

Translated by