使用函数作为基质中的元素:R

时间:2016-01-17 19:57:10

标签: r linear-algebra

我是R的新手,我正在尝试做功课。我看了很多地方,我找不到任何关于如何制作包含功能的matricies的说明。我需要我的矩阵[A]在其中包含cos(x)和sin(x)等函数,然后我需要能够计算[A(o度)]或[A(30度)]等等。有没有办法做到这一点?谢谢你的帮助

1 个答案:

答案 0 :(得分:1)

这是将函数存储在矩阵中的另一种方法:

M <- matrix( c( function(x) {cos(x)},
                function(x) {sin(x)},
                function(x) {tan(x)},
                function(x) {asin(x)}), 
             2,2)

 M[1,1]
#-------
[[1]]
function (x) 
{
    cos(x)
}

要访问每个列表的内容(从矩阵对象中提取后),您需要使用[[,然后它可以用作函数:

 M[1,1][[1]](pi)
#[1] -1

Scriven的建议同样有效,而且肯定更经济:

> M2 <- matrix( c(cos, sin, tan, asin), 2,2)
> M2
     [,1] [,2]
[1,] ?    ?   
[2,] ?    ?   

> M2[1,1][[1]](pi)
[1] -1
> class(M2[1,1])
[1] "list"
> class(M2[1,1][[1]])
[1] "function"