Академический Документы
Профессиональный Документы
Культура Документы
Inicio
Operadoresrelacionales
MATLAB
Bsico
Operadoresrelacionales
Clculosaritmticos
Variablesescalares
Vectoresymatrices
Entrada/salida
Grficos
bidimensionales
Losoperadoresrelacionalessonsmbolosqueseusanparacomparardosvalores.Sielresultadodela
comparacinescorrectolaexpresinconsideradaesverdadera,encasocontrarioesfalsa.Porejemplo,8>4
(ochomayorquecuatro)esverdadera,serepresentaporelvalor1,encambio,8<4(ochomenorquecuatro)es
falsa,serepresentaporelvalor0.Enlaprimeracolumnadelatabla,sedanlossmbolosdelosoperadores
relacionales,ellasegunda,elnombrededichosoperadores,yacontinuacinsusignificadomedianteunejemplo.
Operador
nombre
ejemplo
significado
Sentencias
condicionales
<
menorque
a<b
aesmenorqueb
Sentenciasiterativas
>
mayorque
a>b
aesmayorqueb
==
iguala
a==b
aesigualab
~=
noiguala
a~=b
anoesigualab
<=
menorqueoiguala
a<=5
aesmenorqueoigualab
>=
mayorqueoiguala
a>=b
aesmenorqueoigualab
Funciones
Ejemplos
MATLABnodisponedeltipodedatoboolean(true,false),silaexpresinesverdaderadacomoresultado1,si
esfalsadacomoresultado0.
>>5>4
ans=1
>>5>6
ans=0
Elcarcter~seobtienemanteniendopulsadalateclaAltypulsandoeneltecladonumricolasteclas126.
CorrespondealcarcterASCIIdecimal126.
Sedebetenerespecialcuidadoennoconfundireloperadorasignacinconeloperadorrelacionaliguala.Las
asignacionesserealizanconelsmbolo=,lascomparacionescon==.
Sidosescalaresaybsecomparanelresultadopuedeserverdadero(1)ofalso(0)deacuerdoconlatabla
anterior.
Siaybsonvectoresdelamismadimensin,secomparacadaelementoa(i)conb(i)elresultadoesqueel
elemento(i)delvectorresultadou(i)puedecontenerun10.
Sisecomparandosmatrices(solamentematricesdelamismadimensinsepuedencomparar)lacomparacinse
haceelementoaelementoyelresultadoesotramatrizdelamismadimensinconunosycerosdeacuerdoconel
resultadodelacomparacin.
>>a=[1569411714]
a=1569411714
>>b=[8209219710]
b=8209219710
>>u=a>=b
u=
1011011
Unvectorounamatrizcomouquecontieneunosycerosesuntipoespecialdevectoromatrizdenominado
lgicoyseutilizamuchoenMATLABcomovamosaverenestapgina.
Losoperadoreslgicos
&AND(elresultadoesverdaderosiambasexpresionessonverdaderas)
|OR(elresultadoesverdaderosialgunaexpresinesverdadera)
http://www.sc.ehu.es/sbweb/energiasrenovables/MATLAB/basico/condicional/condicional.html
1/8
6/7/2016
Operadoresrelacionales
~NOT(elresultadoinviertelacondicindelaexpresin)
ANDyORtrabajancondosoperandosyretornanunvalorlgicobasadasenlasdenominadastablasdeverdad.
EloperadorNOTactasobreunoperando.Estastablasdeverdadsonconocidasyusadasenelcontextodela
vidadiaria,porejemplo:"sihacesolYtengotiempo,iralaplaya","siNOhacesol,mequedarencasa","si
llueveOhaceviento,iralcine".LastablasdeverdaddelosoperadoresAND,ORyNOTsemuestranenlas
tablassiguientes
EloperadorlgicoAND,&
x
resultado
EloperadorlgicoOR,|
x
resultado
EloperadorlgicoNOT,~
x
resultado
LosoperadoresANDyORcombinanexpresionesrelacionalescuyoresultadovienedadoporlaltimacolumna
desustablasdeverdad.Porejemplo:
(a<b)&(b<c)
esverdadero,siambassonverdaderas.Sialgunaoambassonfalsaselresultadoesfalso.Encambio,laexpresin
(a<b)|(b<c)
esverdaderasiunadelasdoscomparacionesloes.Siambas,sonfalsas,elresultadoesfalso.
Laexpresin"NOaesmenorqueb"
~(a<b)
esfalsasi(a<b)esverdaderoyesverdadera,silacomparacinesfalsa.Portanto,eloperadorNOTcambiael
estadodeverdaderoafalsoydefalsoaverdadero.
MATLABdisponedefuncionesquesonequivalentesalosoperadoreslgicos.Estasson:
and(x,y)equivalenteax&y
or(x,y)equivalenteax|y
not(x)equivalentea~x
Losoperadoreslgicosencombinacinconlosrelacionalessepuedenaplicartambinavectores,
>>a=[1537]
>>b=[0287]
>>u=(a>b)&(a>4)
u=
0100
>>u=(a>b)|(a>4)
u=
1101
http://www.sc.ehu.es/sbweb/energiasrenovables/MATLAB/basico/condicional/condicional.html
2/8
6/7/2016
Operadoresrelacionales
Accesoaloselementosdeunvector
Yahemosestudiadocomoseaccedealoselementosdeunvectorounamatrizatravsdesusndices,enesta
pginavamosavernuevasformasdeaccederdichoselementoscuandocumplendeterminadascondiciones.
Paraobtenerloselementosdelvectoraquesonmenoresque10
>>a=[1569411714]
a=1569411714
>>u=a<10
u=0111010
>>c=a(u)
c=
6947
Comovemoselvectoru=a<10contienenunosyceroscomoresultadodelacomparacindecadaunodelos
elementosdelvectoracon10.Siesmenordevuelve1siesmayoroigualdevuelve0.Sinembargo,c=a(u)crea
unvectorformadoporaquelloselementosdelvectoraquesecorrespondencon1enelvectoru.
Seaelvectorx=[4,0,5,3,0,3,7,1,6],vamosacontarcuantoselementosdelvectorxsonpositivos,negativoso
nulos
>>x=[4,0,5,3,0,3,7,1,6]
x=405303716
>>u=x<0
u=100100010
>>ne=sum(u)
ne=3
>>pos=sum(x>0)
pos=4
>>cero=sum(x==0)
cero=2
Productodeunvectorporunvectorlgico
Vamosacalcularelproductoelementoaelementodelvectoraporelvectorlgicou,queutilizaremosenlos
siguientesapartados
>>a=[15,6,9,4,11,7,14]
a=1569411714
>>u=[0,1,1,1,0,1,0]
u=0111010
>>a.*u
ans=
0694070
Representarlapartepositivadeunafuncin
Representarlafuncinf(x)definidadelsiguientemodo
cos(x) cos(x) > 0
f (x) = {
0 cos(x) 0
http://www.sc.ehu.es/sbweb/energiasrenovables/MATLAB/basico/condicional/condicional.html
3/8
6/7/2016
Operadoresrelacionales
x=0:pi/30:3*pi
y=cos(x)
y=y.*(y>0)
plot(x,y)
set(gca,'XTick',0:pi/2:3*pi)
set(gca,'XTickLabel',{'0','pi/2','pi','3pi/2','2pi','5pi/2','3pi'})
Laexpresin(y>0)devuelveunvectorcuyoselementosson1cuandocos(x)espositivoy0encasocontrario.El
productoelementoaelementoy.*(y>0)conservainalteradoslosvalorespositivosylosotrosloshacecero.
Representarunafuncinescaln
2x0 x < 1
21 x < 3
f (x) =
x + 53 x < 5
0x 5
http://www.sc.ehu.es/sbweb/energiasrenovables/MATLAB/basico/condicional/condicional.html
4/8
6/7/2016
Operadoresrelacionales
x=0:0.01:6
y=(2*x).*(0<=x&x<1)+2*(1<=x&x<3)+(x+5).*(3<=x&x<5)
plot(x,y)
ylim([0.12.1])
Evitandoladivisinentrecero
Supongamosquequeremosdibujarlagrficadelafunciny=sin(x)/xdesde4a4.Perocuandoxescero
tenemosunadivisinentrecero.Unmododeevitaresteproblemaessustituirx=0porx=eps.Siescribimoseps
enlaventanadecomandosobtenemosunnmeromuypequeo2.2204e016.
x=4*pi:pi/30:4*pi
x=x+(x==0)*eps
y=sin(x)./x
plot(x,y)
http://www.sc.ehu.es/sbweb/energiasrenovables/MATLAB/basico/condicional/condicional.html
5/8
6/7/2016
Operadoresrelacionales
Laexpresin(x==0)devuelveununocuandox=0,entoncesxtomaelvalorfinalx=epsqueevitaladivisinentre
0.
Evitandoelinfinito
Vamosadibujarlafunciny=tan(x)desde3/2a3/2.Elproblemaesquetan(x)seaproximaacuandox=
/2,3/2,...
x=3*pi/2:pi/100:3*pi/2
y=tan(x)
y=y.*(abs(y)<100)
plot(x,y)
set(gca,'XTick',3*pi/2:pi/2:3*pi/2)
set(gca,'XTickLabel',{'3pi/2','pi','pi/2','0','pi/2','pi','3pi/2'})
abs(y)<100devuelveunvectorqueescerosolamentecercadelasasntotas(cuandolatangenteesmuygrandeen
valorabsoluto),yununoenlosdemscasos.Sesugiereponerunsmbolocomentario%delantedelatercera
lneaparaanularla,guardarelscriptyprobarelefecto.
FuncionesMATLAB
xor(a,b)
ORexclusivo.Devuelve1siunoperandoes
verdaderoyelotroesfalso.Devuelve0silosdos
sonverdaderosolosdossonfalsos.
>>xor(7,0)
ans=1
>>xor(7,5)
ans=0
all(a)
Devuelve1sitodosloselementosdelvectorson
distintosdecero.Devuelve0siunooms
elementossoncero
>>a=[53117815]
>>all(a)
ans=1
>>b=[36114013]
>>all(b)
ans=0
Devuelve1sihayelementosdelvectorqueson
distintosdecero.Sitodosloselementosdel
vectorsoncerodevuelvecero.
>>a=[50140013]
>>any(a)
ans=1
>>b=[000000]
>>any(b)
ans=0
any(a)
Devuelvelosndicesdeloselementosdelvector
distintosdecero
http://www.sc.ehu.es/sbweb/energiasrenovables/MATLAB/basico/condicional/condicional.html
>>a=[074280039]
>>find(a)
6/8
6/7/2016
Operadoresrelacionales
find(a)
find(a>d)
Siaesunvectordevuelvelosndicesdelos
elementosquesonmayoresqued(sepuede
utilizarcualquierotrooperadorrelacionaldistinto
aa>d)
ans=234589
>>find(a>4)
ans=259
Vamosutilizarlafuncinfindenelsiguienteejemplo:
Lastemperaturasmximasdel1al28defebrerohansido:
15,14,10,12,6,8,12,16,18,20,17,15,13,11,9,7,5,4,6,8,12,13,15,19,21,23,16,14
Determinarelnmerodedasylasfechasenlaquelatemperaturamximadeldaesmayoroiguala15grados
centgrados
Comohemosvisto,T>=15esunvectorcuyoselementostomanelvalorde1sisecumplelacondiciny0en
casocontrario.
>>T=[151410126812161820171513119754681213151921231614]
>>length(T)
ans=28
>>dias=sum(T>=15)
dias=11
>>fechas=find(T>=15)%ndicesdeloselementosdelvectorTqueson>=que15
fechas=
1891011122324252627
>>length(fechas)
ans=11
Enelcasodelafuncinallsepuedeemplearensentenciasdeestetipo:Sitodosloselementosdelvectorason
mayoresqueuno,haceralgunatarea.Delmismomodosepuedeemplearlafuncinany.
ifall(a>1)
haceralgo...
end
Ejemplo
Ensiguientevectorguardalasedadesdevariaspersonas:edad=[45,47,15,23,7,60,35,28,32,10,41].Determinar
Elnmerototaldepersonas,
Quienessonadultos(marcarconununo)yelnmerodeadultosmayoresde20aos,
Quienessonniosyelnmerodenios,quetengan10aosomenos.
Quienessonjvenesyelnmerodejvenes,mayoresde10aosyhasta20aosinclusive
>>edad=[45,47,15,23,7,60,35,28,32,10,41]
>>length(edad)
ans=11
>>adultos=edad>20
adultos=11010111101
>>n_adultos=sum(adultos)
n_adultos=8
>>ninhos=edad<=10
ninhos=00001000010
>>n_ninhos=sum(ninhos)
n_ninhos=2
>>jovenes=edad>10&edad<=20
jovenes=00100000000
>>n_jovenes=sum(jovenes)
n_jovenes=1
>>n_ninhos+n_adultos+n_jovenes
ans=11
Creamosunvectordedatosdelospesosdelaspersonas:peso=[70,83,45,60,25,55,90,73,65,35,78]
Cuantosadultospesanmsde65kg?
>>edad=[45,47,15,23,7,60,35,28,32,10,41]
>>peso=[70,83,45,60,25,55,90,73,65,35,78]
>>edad>20
ans=11010111101
>>peso>65
ans=11000011001
>>edad>20&peso>65
ans=11000011001
>>sum(edad>20&peso>65)
ans=5
http://www.sc.ehu.es/sbweb/energiasrenovables/MATLAB/basico/condicional/condicional.html
7/8
6/7/2016
Operadoresrelacionales
Utilizarfindparacrearunvectoradultosdeedadesdelosadultos
>>edad=[45,47,15,23,7,60,35,28,32,10,41]
>>find(edad>20)
ans=124678911
>>adultos=edad(find(edad>20))
adultos=4547236035283241
>>length(adultos)
ans=8
Determinarelpesodelterceradultoenelvectoradultos
>>edad=[45,47,15,23,7,60,35,28,32,10,41]
>>peso=[70,83,45,60,25,55,90,73,65,35,78]
>>indices=find(edad>20)
indices=124678911
>>peso(indices(3))
ans=60
Dadoelvectorv=1:16eliminartodosloselementosquesonmltiplosdetres.
>>v=1:16
>>v(rem(v,3)==0)=[]
v=1245781011131416
http://www.sc.ehu.es/sbweb/energiasrenovables/MATLAB/basico/condicional/condicional.html
8/8