# Checking variables are valid for a set of conditions.

6 views (last 30 days)
Giuseppe on 21 May 2014
Commented: Giuseppe on 21 May 2014
The aim of this sub function is to determine if the inputs of a parent function are valid. The goal is that EM is a string displaying the relevant error if there is one. However something is not right? Maybe there is a more efficient way of doing so.?
function EM = EV(N,t,S,EV)
inputs = [N,t,S,EV]; %The inputs are placed in a vector.
if sum(inputs(:)==0)>2 %This checks if there is more than two zeros.
EM = 'ERROR: There is more than two zeros.';
elseif isreal(inputs)==0 && isa(inputs,'numeric')==0 %This checks if other than real numbers and numbers are inputted.
EM = 'ERROR: The inputs are not real numbers.';
elseif N<1 && N>8000 %This checks if N is not within the range 1:8000
EM = 'ERROR: N is not within the range 1:8000';
elseif t<(1/8000) && t>2 %This checks if t is not within the range 1/8000:2
EM = 'ERROR: t is not within the range 1/8000:2';
elseif S<25 && S>51200 %This checks S is within the range 25:51200
EM = 'ERROR: S is not within the range 25:51200';
elseif EV<-6 && EV>23 %This checks EV is within the range -6:23
EM = 'ERROR: EV is not within the range -6:23';
else
EM = 'There are no errors with the inputs.';
end
end

Henric Rydén on 21 May 2014
Edited: Henric Rydén on 21 May 2014
You have got AND mixed up with OR . N<1 AND N>8000 can never be true. You should use OR instead. OR is |
Giuseppe on 21 May 2014
Don't worry I have sorted this mess all out.