On 7/4/05, Gabriel Rodrigues Alves Margarido
<[EMAIL PROTECTED]> wrote:
> Suppose I have a simple function that returns a matrix, such as:
> 
> test <- function(x){ return(matrix(c(x,x^2,x^3,x^4),2,2)) }
> 
> so that test returns:
> [ x      x^3 ]
> [ x^2    x^4 ]
> 
> Is it possible for me to get the derivative of an expression such as:
> 
> c(1,0) %*% test() %*% c(0,1)
> 
> The vectors are used just to "index" the matrix.
> I don't want a value, but the expression to work with (in that case,
> the expected expression would be 3*x^2)...
> 
> Tried functions D and deriv in many ways, but no success.
> I will be grateful if anyone can help.
> 

Note sure if this is good enough but in the following you can
replace 1,2 in the third line with other indices to extract out any
matrix component and differentiate it.  e is a list that contains the
4 expressions and idx[i,j] gives the index in e that contains
the i,j-th expression:

e <- lapply(1:4, function(i) bquote(x^.(i)))
idx <- matrix(1:4, 2)
e12 <- e[idx[1,2]][[1]]
D(e12, "x")

______________________________________________
R-help@stat.math.ethz.ch mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide! http://www.R-project.org/posting-guide.html

Reply via email to