Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/72.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R 矩阵与矩阵数组的乘法_R_Arrays_Matrix Multiplication - Fatal编程技术网

R 矩阵与矩阵数组的乘法

R 矩阵与矩阵数组的乘法,r,arrays,matrix-multiplication,R,Arrays,Matrix Multiplication,我有一个矩阵数组,Z1,还有一个矩阵,Z2Z1,具有维度[25,2,4],Z2具有维度[2,10] 我想为I=1,2,3,4执行Z1[,I]%*%Z2。这是否可能使用应用扫描 我可以使用for循环来实现这一点,但我不想在这里这样做 建议数据的一个示例:Z1=array(1:200,dim=c(25,2,4)); Z2=array(1:20,dim=c(2,10))lapply(1:4,函数(i)Z1[,i]*%Z2)lapply和sapply(尽管在使用sapply之后必须进行一些重新排列)都是

我有一个矩阵数组,
Z1
,还有一个矩阵,
Z2
Z1
,具有维度
[25,2,4]
Z2
具有维度
[2,10]

我想为
I=1,2,3,4
执行
Z1[,I]%*%Z2
。这是否可能使用应用扫描

我可以使用for循环来实现这一点,但我不想在这里这样做

建议数据的一个示例:
Z1=array(1:200,dim=c(25,2,4));

Z2=array(1:20,dim=c(2,10))
lapply(1:4,函数(i)Z1[,i]*%Z2)
lapply和sapply(尽管在使用sapply之后必须进行一些重新排列)都是选项。但是,它们本质上是为循环运行的包装器。是否有一种方法可以使用apply或sweep或其他不“执行for循环”的方法。出于好奇,您是否希望避免for循环(或for循环的包装器),因为它很慢?@bzki是的。我正在处理的数组和数据帧要大得多,我希望尽可能限制for循环的数量。这似乎是一个关于性能的问题,在这一点上,使用
apply
不会获得太多好处。它同样只是一个美化的
for循环
。不过,编译整体函数和中间函数可能会带来很大的提升(例如
FUN
lapply(1:4,函数(i)Z1[,i]*%Z2)
lapply和sapply(尽管在使用sapply之后,您必须进行一些重新排列)都是选项。但是,它们本质上是为循环运行的包装器。有没有一种方法可以使用apply或sweep或其他不“执行for循环”的方法。出于好奇,是否要避免使用for循环(或for循环的包装器)因为它很慢?@bzki是的。我正在处理的数组和数据帧要大得多,我希望尽可能限制for循环的数量。这似乎是一个关于性能的问题,在这一点上,使用
apply
,您不会获得太多好处。它同样只是一个美化了的
for循环
。编译over不过,所有的函数和中间函数可能会带来很大的提升(例如
FUN