You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何对任意长度D的矩阵列表逐行多次应用Kronecker积?

动态适配任意D值的逐行Kronecker积实现需求

我现在碰到一个实际问题:我有一个长度为D的列表list0,列表里的每个元素都是N×T的矩阵。我需要逐行构建Kronecker积——简单说就是对每一行i(从1到N),计算list0[[D]][i,] %x% list0[[D-1]][i,] %x% ... %x% list0[[1]][i,],然后把这个结果放到dummy矩阵的第i列中。

目前我只能手动实现固定D值的情况,比如下面的示例代码就是D=4时的手动写法,但我想找到能适配任意D值的最优实现方法,不用每次改D都手动调整嵌套的Kronecker积代码。

set.seed(1)
N = 2
T = 3
D = 4
dummy = matrix(0,(T)^D,N)
list0 = list()
# 生成测试用的列表
for(d in 1:D) { 
  list0[[d]] <- matrix(rnorm(N*T), nrow=N, ncol=T)
}
# 手动实现D=4时的逐行Kronecker积
for(i in 1:N){
  dummy[,i] <- list0[[4]][i,] %x% list0[[3]][i,] %x% list0[[2]][i,] %x% list0[[1]][i,]
}

核心需求就是:不管D取什么正整数,代码都能自动完成从list0[[D]]到list0[[1]]的逐行Kronecker积串联,不用手动写嵌套的%x%操作。

内容的提问来源于stack exchange,提问作者wolfsatthedoor

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.26 09:22:31