Checking variables are valid for a set of conditions.

3 visualizaciones (últimos 30 días)
Giuseppe
Giuseppe el 21 de Mayo de 2014
Comentada: Giuseppe el 21 de Mayo de 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

Respuesta aceptada

Henric Rydén
Henric Rydén el 21 de Mayo de 2014
Editada: Henric Rydén el 21 de Mayo de 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 |
  3 comentarios
Sara
Sara el 21 de Mayo de 2014
To be in the range then N > 1 && N < 8000 not the other way around!
Giuseppe
Giuseppe el 21 de Mayo de 2014
Don't worry I have sorted this mess all out.

Iniciar sesión para comentar.

Más respuestas (0)

Categorías

Más información sobre Function Creation en Help Center y File Exchange.

Productos

Community Treasure Hunt

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

Start Hunting!

Translated by