Es mi primera incursion en R, y no se muy bien como hacerlo, por eso preguntaba. ¿Como podria hacerlo con una lista?

Muchas gracias

Date: Wed, 16 Jan 2013 09:34:27 -0300
Subject: Re: [R-es] Matriz funcion de pertenencia
From: daniel319@gmail.com
To: lyaran2003@hotmail.com
CC: r-help-es@r-project.org

Si entiendo bien, quieres asignar a una matriz objetos que no son vectores atómicos. Francamente, nunca lo intenté, pero ese puede ser el problema. ¿No te sirven las listas?
Daniel Merino


El 16 de enero de 2013 07:41, Ivan Santos <lyaran2003@hotmail.com> escribió:

Buenos dias



Estoy modelando un sistema de control difuso, y tengo un problema a la hora de obtener la matriz con las reglas difusas. Me explico.



El sistema modela la velocidad de un ventilador, en funcion de la temperatura y la humedad



1. He definido las funciones de pertenencia de temperatura, humedad y velocidad



#Función de pertenencia temperatura



Tbaja<-vector(length=length(T), mode="numeric")

Tbaja[T>40 & T<=60] <- 1

Tbaja[T>60 & T<=80] <- (80-T[T>60 & T<=80])/(80-60)

Tbaja[T>80] <- 0



Tmedia<-vector(length=length(T), mode="numeric")

Tmedia[T<60] <- 0

Tmedia[T>60 & T<=80] <- (T[T>60 & T<=80]-60)/(80-60)

Tmedia[T>80 & T<=100] <- (100-T[T>80 & T<=100])/(100-80)

Tmedia[T>100] <- 0



Talta<-vector(length=length(T), mode="numeric")

Talta[T<80] <- 0

Talta[T>=80 & T<=100] <- (T[T>=80 & T<=100]-80)/(100-80)

Talta[T>100] <- 1



#Funcion pertenencia humedad



Hbaja<-vector(length=length(H), mode="numeric")

Hbaja[H<25] <- 1

Hbaja[H>=25 & H<=50] <- (50-H[H>=25 & H<=50])/(50-25)

Hbaja[H>50] <- 0



Hmedia<-vector(length=length(H), mode="numeric")

Hmedia[H<25] <- 0

Hmedia[H>=25 & H<50] <- (H[H>=25 & H<50]-25)/(50-25)

Hmedia[H>=50 & H<=75] <- (75-H[H>=50 & H<=75])/(75-50)

Hmedia[H>75] <- 0



Halta<-vector(length=length(H), mode="numeric")

Halta[H<50] <- 0

Halta[H>=50 & H<=75] <- (H[H>=50 & H<=75]-50)/(75-50)

Halta[H>75] <- 1



#Funcion pertenencia velocidad



Wbaja<-vector(length=length(W), mode="numeric")

Wbaja[W<250] <- 1

Wbaja[W>250 & W<=500] <- (500-W[W>250 & W<=500])/(500-250)

Wbaja[W>500] <- 0



Wmedia<-vector(length=length(W), mode="numeric")

Wmedia[W<250] <- 0

Wmedia[W>=250 & W<500] <- (W[W>=250 & W<500]-250)/(500-250)

Wmedia[W>=500 & W<=750] <- (750-W[W>=500 & W<=750])/(750-500)

Wmedia[W>750] <- 0



Walta<-vector(length=length(W), mode="numeric")

Walta[W<500] <- 0

Walta[W>=500 & W<=750] <- (W[W>=500 & W<=750]-500)/(750-500)

Walta[W>750] <- 1



2. Una vez obtenidas las funciones de pertenencia, obtenemos las implicaciones.

#Construimos las reglas de implicacion

#velocidad baja, temperatura baja, velocidad baja

if (Tbaja && Hbaja) Wbaja



#velocidad media, temperatura baja, velocidad media

if (Tmedia && Hbaja) Wmedia



#velocidad alta, temperatura baja, velocidad baja

if (Talta && Hbaja) Wmedia



3. Con las reglas deberia construir una matriz, para obtener las funciones de pertenencia de las reglas. Pero aqui me encuentro con el problema de como meter dichas reglas, en una matriz 3x3. He probado a asignar directamente las reglas a una posicion concreta pero me da error.




4. Como podria obtener la superficie de control.



Muchas gracias



        [[alternative HTML version deleted]]




_______________________________________________

R-help-es mailing list

R-help-es@r-project.org

https://stat.ethz.ch/mailman/listinfo/r-help-es




-- 
Daniel
 		 	   		  
	[[alternative HTML version deleted]]

