假设我有一个大小为 (nx m_1 x m_2 x m_3) 的数组 Y。如果我想要第一个大小为 (m_1 x m_2 x m_3) 的子数组,我可以使用逗号选择它
Y(1,,,)
同样,如果 Y 的大小为 (nx m_1 x m_2 x m_3 x m_4) 并且我想要第一个大小为 (m_1 x m_2 x m_3 x m_4) 的子数组,我可以使用逗号将其选择为
Y(1,,,,)
一般来说,如果 Y 是一个大小为 (nx m_1 x m_2 x ... x m_p) 的数组,并且我想要第一个大小为 (m_1 x m_2 x ... x m_p) 的子数组,我可以将其选为
Y(1,,...,)
其中 ,,... 表示 p 个不同的逗号。如果 p 已知,我该如何写 p 逗号?
一个简单的解决方案是
array(array(Y,c(dim(Y)[1],prod(dim(Y)[-1])))[1,])
但是,这是低效的代码(Y 可能很大,我不希望将其转换为矩阵然后再将其转换回数组)