## how can call a function

brahmi ibtissem

### brahmi ibtissem (view profile)

さんによって質問されました 2019 年 8 月 18 日

### Walter Roberson (view profile)

さんによって コメントされました 2019 年 8 月 19 日
Hello everyone,
how can i call this function in an other function?
i need to plot a, b, c and d:
function [o, a, b, c, d] = ObjectiveFunction(X )
a=sum(throughputS, 'all');
b=sum(throughputT, 'all');
c=sum(throughputCN, 'all');
d=sum(throughputCR, 'all');
Thanks alot

Walter Roberson

### Walter Roberson (view profile)

2019 年 8 月 18 日
Where are throughputS, throughputT, throughputCN, and throughputCR coming from, and why is the input X not being used? Where is the output o coming from?
Your outputs a, b, c, and d are all going to be scalars, so it is not obvious what you would be plotting?

サインイン to comment.

## 2 件の回答

### Walter Roberson (view profile)

2019 年 8 月 18 日

Example:
N = 100;
o = zeros(N,1); a = zeros(N,1); b = zeros(N,1); c = zeros(N,1); d = zeros(N,1);
for idx = 1 : N
X = rand(15,15);
[o(idx), a(idx), b(idx), c(idx), d(idx)] = ObjectiveFunction(X);
end
plot([a,b,c,d])
legend({'a', 'b', 'c', 'd'});

#### 0 件のコメント

サインイン to comment.

### Luna (view profile)

2019 年 8 月 19 日

You should define the variables you are going to use as inputs of function. The inputs are written in the paranthesis.
All outputs must be assigned also.
function [o, a, b, c, d] = ObjectiveFunction(throughputS,throughputT,throughputCN,throughputCR)
a=sum(throughputS, 'all');
b=sum(throughputT, 'all');
c=sum(throughputCN, 'all');
d=sum(throughputCR, 'all');
o = 'Luna';
end
Then you call this function as follows in another function:
function hPlot = anotherFunctionToPlotSomeData(w,x,y,z) % you should pass variable reference here.
[o, a, b, c, d] = ObjectiveFunction(w,x,y,z) % where your w,x,y,z becomes throughputS,throughputT,throughputCN,throughputCR respectively inside this function.
% Now you obtained a,b,c,d (I don't know what to do with "o" variable but you get the idea)
figure;
hPlot = plot([a,b,c,d]); % this function also returns the plot handle (line class)
end

Walter Roberson

### Walter Roberson (view profile)

2019 年 8 月 19 日
The a, b, c, d returned are all going to be scalars, so plot([a,b,c,d]) would be a request to plot a line with four points. Although that is well defined, I suspect that is not what the poster had in mind.

サインイン to comment.

Translated by