Hola,

La traspuesta en la función hB la tienes que aplicar sobre "B", si no no
puedes multiplicar los dos vectores/matrices.
Y luego antes de hacer el plot, tienes que revisar las dimensiones de tanto
y1 y del resultado hB(y1) porque no son iguales y la función plot te dará
un nuevo error...

Mira el código:

> h<-function(x) matrix(c(1,x,x^2,x^3), ncol=1)
> B=matrix(c(1,2,1,3),ncol=1)
> hB<-function(x){(h(x))%*%*t*(B)}
> y1=seq(-2,2,0.01)
> y2 <- hB(y1)
>
> length(y1)
[1] *401*
> dim(y2)
[1] *1204*    4

> plot(y1, y2)
Error en xy.coords(x, y, xlabel, ylabel, log) :
  'x' and 'y' lengths differ


Saludos,
Carlos Ortega
www.qualityexcellence.es



El 28 de febrero de 2013 04:44, Marcuzzi, Javier Ruben <
javier.ruben.marcuzzi@gmail.com> escribió:

> Estimada Irma Zavala
>
> Yo tengo los datos en un data.frame, y desde este grafico. Es mi forma,
> de pronto bastante básica pero de esa forma tengo resutlados.
>
> Sin embargo es posible graficar matrices, hay un ejemplo en:
> http://www.phaget4.org/R/image_matrix.html
>
> Javier Marcuzzi
>
> On mié, 2013-02-27 at 21:32 -0600, Irma Zavala wrote:
> > r-help-es@r-project.org
> >
> > Hola!!
> >
> > Estoy trabajando con una funcin del tipo h(x)'B, donde h(x) es un vector
> > columna  de q entradas, de igual manera B es un vector columna de
> dimensin
> > q.
> >
> > Quiero graficar h(x)'B para alguna h(x), por ejemplo
> >
> >
> >
> > h<-function(x) matrix(c(1,x,x^2,x^3), ncol=1)
> >
> > B es un vector columna fijo
> >
> > B=matrix(c(1,2,1,3),ncol=1)
> >
> >
> >
> > Para graficar la funcin h(x)'B lo que hago es hacer una funcin nueva
> >
> > hB<-function(x){t(h(x))%*%B}
> >
> > para valores particulares de x la funcin hace lo que busco
> >
> >
> > > h<-function(x) matrix(c(1,x,x^2,x^3), ncol=1)
> >
> > > B=matrix(c(1,2,1,3),ncol=1)
> >
> > > hB<-function(x){t(h(x))%*%B}
> >
> > > hB(1)
> >
> >      [,1]
> >
> > [1,]    7
> >
> > > hB(2)
> >
> >      [,1]
> >
> > [1,]   33
> >
> > Sin embargo cuando intento graficar, me marca un error
> >
> > > y1=seq(-2,2,0.01)
> >
> > > plot(y1,hB(y1))
> >
> > Error in t(h(x)) %*% B : non-conformable arguments
> >
> > Entiendo que primero evala en la funcin h y despus multiplica por B y
> > por ende hay un error en las dimensiones. Pero no se que hacer para que
> la
> > funcin se evale entrada por entrada del vector y1, creo que usar alguna
> > forma vectorizada ayudara, pero no se como hacerlo.
> >
> > Ayuda por favor :)
> >
> >
> >
> >
> >
> >
> >
> >
> >
> >
> >
> >
> > _______________________________________________
> > R-help-es mailing list
> > R-help-es@r-project.org
> > https://stat.ethz.ch/mailman/listinfo/r-help-es
>
> _______________________________________________
> R-help-es mailing list
> R-help-es@r-project.org
> https://stat.ethz.ch/mailman/listinfo/r-help-es
>



-- 
Saludos,
Carlos Ortega
www.qualityexcellence.es

	[[alternative HTML version deleted]]

