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') |
|