ÍNDICE


 
OPERACIONES RELACIONALES Y LÓGICAS



   Además de las operaciones mátemáticas tradicionales, MATLAB nos permite realizar operaciones relacionales y lógicas. El objetivo de estos operadores es proporcionar respuestas a cuestiones verdadero/falso. MATLAB responde a este tipo de preguntas con 1 (verdadero) ó 0 (falso).

Operadores relacionales
   Los operadores relacionales de MATLAB son las comparaciones comunes:
     Menor que

<=    Menor o igual

     Mayor que

>=    Mayor o igual

==    Igual a

~=    Distinto a

   Podemos usar estos operadores para comparar arrays del mismo tamaño o comparar un array con un escalar (entonces se compara cada elemento del array con el escalar)
 
EDU» A=[[1:2:8] [0 3 -2 5 1 -7]]
A =
     1     3     5     7     0     3    -2     5     1    -7
EDU» B=round(-5+10*rand(1,length(A)))
B =
    -3     1    -2     5     2    -1     2    -2    -1     4
EDU» x=A>5 % Buscamos los elementos de A mayores que 5
x =
     0     0     0     1     0     0     0     0     0     0
EDU» x=A==B % Buscamos los elementos de A iguales a los correspondientes de B
x =
     0     0     0     0     0     0     0     0     0     0
EDU» x=A+2*(B<0)
x =
     3     3     7     7     0     5    -2     7     3    -7
EDU» %Sustituimos los valores nulos de A por el valor eps.
EDU» %Puede ser útil para evitar divisiones por 0
EDU» A=A+eps*(A==0) 
A =
  Columns 1 through 7 
    1.0000    3.0000    5.0000    7.0000    0.0000    3.0000   -2.0000
  Columns 8 through 10 
    5.0000    1.0000   -7.0000
Operadores lógicos
  Los operadores lógicos que proporciona MATLAB son:
&       AND

|         OR

~        NOT

xor    EXCLUSIVE OR

EDU» x=(A>2)|(B<0)
x =
     1     1     1     1     0     1     0     1     1     0
EDU» y=~(A>4)
y =
     1     1     0     0     1     1     1     0     1     1
EDU» xor(x,y)
ans =
     0     0     1     1     1     0     1     1     0     1

   Finalizamos el capítulo con un ejemplo de como usar estas técnicas para representar señales discontinuas o compuestas, la idea básica es multiplicar los valores que deseamos que permanezcan 1 y el resto por 0.
 

x=linspace(0,10,100);
EDU» y=sin(x);
EDU» z=(y>=0).*y; %Fijamos los valores negativos a cero
EDU» z=z+0.5*(y<0); %Sumamos 0.5 a los valores negativos de sin(x)
EDU» z=(x<=8).*z; %Hacemos cero los valores mayores que x=8
EDU» plot(x,z)
EDU» xlabel('Eje x'),ylabel('z=f(x)')
EDU» title('Una señal discontinua')


ÍNDICE