【发布时间】:2023-04-08 21:52:02
【问题描述】:
我有一个函数,它接受一个 X*X 矩阵作为输入,并返回一个长度为 X 的向量。
我想将该函数应用于 X*X*Y 数组,并从函数中取回 X*Y 矩阵/数组的结果。
我可以将函数应用到一个矩阵
funcName(arrayName[,,1])
但我不知道如何将函数应用于每个矩阵。我确定这很简单 - 使用 apply 或 sapply 或 lapply,但我无法弄清楚。
【问题讨论】:
我有一个函数,它接受一个 X*X 矩阵作为输入,并返回一个长度为 X 的向量。
我想将该函数应用于 X*X*Y 数组,并从函数中取回 X*Y 矩阵/数组的结果。
我可以将函数应用到一个矩阵
funcName(arrayName[,,1])
但我不知道如何将函数应用于每个矩阵。我确定这很简单 - 使用 apply 或 sapply 或 lapply,但我无法弄清楚。
【问题讨论】:
就在发布我的问题之前,我又尝试了一件事情。
The reference material for apply 告诉您 MARGIN 参数应该设置为 1 用于行,2 用于列。我尝试了这两种方法都没有成功,但后来想尝试将 MARGIN 参数设置为 3 - 这样就成功了,并给了我想要的确切输出。
确切地说,我做到了:
apply(arrayName, MARGIN=3, FUN=funcName)
【讨论】:
MARGIN=c(1,3) 或类似的东西。