Function does not calculate desired variable.

조회 수: 2 (최근 30일)
Giuseppe
Giuseppe 2014년 5월 20일
댓글: Friedrich 2014년 5월 21일
Hi I have the following function;
function [EV,N,t,S] = EVjc300293(EV,N,t,S)
% If a variable is set to zero calculate its value.
% 1. Choose which variable to process.
if EV==0
EV = log2((N^2)/t)-log2(S/100);
elseif N==0
N = sqrt((2^(EV+log2(S/100)))*t);
elseif t==0
t = (N^2)/(2^(EV+log2(S/100)));
elseif S==0
S = 100/(2^(EV-log2((N^2)/t)));
end
end
I want to make it so that if a variable is set to zero in the function its value is calculated. I wish to do this using the if elseif statements listed. However when I run it it always calculates EV and not any other variable?
Thanks.
  댓글 수: 2
Friedrich
Friedrich 2014년 5월 20일
How do you call it? Name some examples
Giuseppe
Giuseppe 2014년 5월 20일
I call it like this;
[N] = EVjc300293(10,0,3,5)
Where here for example I am trying to find N?

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

채택된 답변

Friedrich
Friedrich 2014년 5월 20일
N is your second output so you would need to call it like this:
>> [~,N] = EVjc300293(10,0,3,5)
  댓글 수: 2
Chandrasekhar
Chandrasekhar 2014년 5월 21일
In this answer only N is being calculated since the if EV==0 condition has failed.. what abt others??
Friedrich
Friedrich 2014년 5월 21일
The other variables arent't calculated. Since output and input variables have the same name they are copied to the output variables. Your function always return 4 variables and you need to know/figure out which output variables are relevant for you:
[a,b,c,d] = EVjc300293(10,0,3,5)
You will see that a is 10, b got calculated and c is 3 and d is 5.

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

추가 답변 (1개)

Chandrasekhar
Chandrasekhar 2014년 5월 20일
In the function that you have written EV, N ,t,s are in separate if -else if conditions and only on of them executes at a time.
in you case if EV==0 is getting satisfied and hence only EV is being calculated and the else if and else conditions are not getting executed.
one solution is to assign a default value for all the value at the beginning of the function.
  댓글 수: 1
Giuseppe
Giuseppe 2014년 5월 20일
Could you further explain this idea please?

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

카테고리

Help CenterFile Exchange에서 Get Started with MATLAB에 대해 자세히 알아보기

제품

Community Treasure Hunt

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

Start Hunting!

Translated by