【发布时间】:2016-02-17 23:01:48
【问题描述】:
我正在尝试在 R 中编写一个函数,该函数将采用具有某种结构的矩阵和一个列向量来赋予该矩阵。
比如这样的:
X^2 aXY 0 X^2 0 0
Mat= aYX Y^2 bYZ or Mat1= 0 2X^2 0
0 bZY Z^2 0 0 3X^2
c(X=1,Y=2,Z=3, a=.3,b=.2) or c(X=1)
然后矩阵将被赋予向量中的值,我可以对给定的矩阵进行数学运算。
我很难定义矩阵。我似乎无法只定义一个空变量矩阵,这些变量稍后会被赋值。
我试过了
x=as.integer
y=as.integer
z=as.integer
Mat=matrix(c(x,0,0,0,y,0,0,0,z),nrow=3)
values=c(x=.5,y=2,z=3)
但我不知道是否可以为矩阵提供这些值。
我可以先定义变量的值,然后定义矩阵,但我认为这不是我想要的。即-
x=.5;y=2,z=3;
Mat=matrix(c(x,0,0,0,y,0,0,0,z),nrow=3)
我的函数需要知道矩阵的结构以及值。我想要的唯一约束是它应该是一个协方差矩阵。 干杯
编辑-我应该指出,理想情况下,我的矩阵不仅仅是 3*3,而是任何大小的正方形,我可能希望下三角形中的每个位置都有一个变量。 (我的矩阵总是对称的。)
【问题讨论】:
-
你对
x=as.integer这行的意图是什么?除非您知道自己在做什么,否则这在 R 语言中应该是有问题的。您是否要声明一个变量? -
矩阵会一直是正方形的吗?
-
我输入 as.integer 的唯一原因是它不能接受 x 或 y,除非我做了一些东西。