Esta página aún no se ha traducido para esta versión. Puede ver la versión más reciente de esta página en inglés.

if, elseif, else

Ejecutar instrucciones si la condición es verdadera

Sintaxis

if expression
    statements
elseif expression
    statements
else
    statements
end

Descripción

ejemplo

if expression, statements, end evalúa una expresión y ejecuta un grupo de instrucciones cuando la expresión es verdadera. Una expresión es verdadera cuando su resultado no está vacío y contiene solo elementos no nulos (numéricos reales o lógicos). De lo contrario, la expresión es falsa.

Los bloques elseif y else son opcionales. Las instrucciones se ejecutan solo si las expresiones anteriores del bloque if...end son falsas. Un bloque if puede incluir varios bloques elseif.

Ejemplos

contraer todo

Cree una matriz de 1s.

nrows = 4;
ncols = 6;
A = ones(nrows,ncols);

Realice un bucle a través de la matriz y asigne a cada elemento un nuevo valor. Asigne 2 en la diagonal principal, -1 en las diagonales adyacentes y 0 en cualquier otro lugar.

for c = 1:ncols
    for r = 1:nrows
        
        if r == c
            A(r,c) = 2;
        elseif abs(r-c) == 1
            A(r,c) = -1;
        else
            A(r,c) = 0;
        end
        
    end
end
A
A = 4×6

     2    -1     0     0     0     0
    -1     2    -1     0     0     0
     0    -1     2    -1     0     0
     0     0    -1     2    -1     0

Las expresiones que incluyen operadores relacionales en arrays, como A > 0, solo son verdaderas cuando todos los elementos del resultado son distintos de cero.

Compruebe si los resultados son verdaderos mediante la función any.

limit = 0.75;
A = rand(10,1)
A = 10×1

    0.8147
    0.9058
    0.1270
    0.9134
    0.6324
    0.0975
    0.2785
    0.5469
    0.9575
    0.9649

if any(A > limit)
    disp('There is at least one value above the limit.')
else
    disp('All values are below the limit.')
end
There is at least one value above the limit.

Compare los arrays utilizando isequal en lugar del operador == para comprobar la igualdad, porque == produce un error cuando los arrays son de diferentes tamaños.

Cree dos arrays.

A = ones(2,3);
B = rand(3,4,5);

Si size(A) y size(B) son iguales, concatene los arrays; de lo contrario, muestre una advertencia y devuelva un array vacío.

if isequal(size(A),size(B))
   C = [A; B];
else
   disp('A and B are not the same size.')
   C = [];
end
A and B are not the same size.

Utilice strcmp para comparar los vectores de caracteres. El uso de == para comprobar la igualdad resulta en un error cuando los vectores de caracteres son de diferentes tamaños.

reply = input('Would you like to see an echo? (y/n): ','s');
if strcmp(reply,'y')
  disp(reply)
end

Determine si un valor está dentro de un rango especificado.

x = 10;
minVal = 2;
maxVal = 6;

if (x >= minVal) && (x <= maxVal)
    disp('Value within specified range.')
elseif (x > maxVal)
    disp('Value exceeds maximum value.')
else
    disp('Value is below minimum value.')
end
Value exceeds maximum value.

Más acerca de

contraer todo

Expresión

Una expresión puede incluir operadores relacionales (como < o ==) y operadores lógicos (como &&, || o ~ ). Utilice los operadores lógicos and y or para crear expresiones compuestas. MATLAB® evalúa las expresiones compuestas de izquierda a derecha, adhiriéndose a las reglas de precedencia de operadores.

Dentro de la expresión condicional de un bloque if...end, los operadores lógicos & y | se comportan como operadores de cortocircuito. Este comportamiento es el mismo que el de && y ||, respectivamente. Dado que && y || se cortocircuitan sistemáticamente en expresiones y declaraciones condicionales, es aconsejable utilizar && y || en lugar de & y | dentro de la expresión. Por ejemplo:

x = 42;
if exist('myfunction.m','file') && (myfunction(x) >= pi)
    disp('Expressions are true')
end

La primera parte de la expresión se evalúa como falsa. Por lo tanto, MATLAB no necesita evaluar la segunda parte de la expresión, lo que resultaría en un error de función no definido.

Sugerencias

  • Puede anidar cualquier número de instrucciones if. Cada instrucción if requiere una palabra clave end.

  • Evite agregar un espacio después de else dentro de la palabra clave elseif (else if). El espacio crea una instrucción if anidada que requiere su propia palabra clave end.

Capacidades ampliadas

Generación de código C/C++
Genere código C y C++ mediante MATLAB® Coder™.

Introducido antes de R2006a