【发布时间】:2017-04-21 02:14:28
【问题描述】:
这是我的问题: 我有一个向量,我想将其转换为具有固定列数的矩阵,但我不想在必要时复制向量来填充矩阵。 例如: 我的向量的长度为 15,我想要一个有 4 列的矩阵。我希望从向量中获取包含 15 个元素的矩阵,并为矩阵中的最后一个元素获取 0。 我怎样才能做到这一点?
编辑: 很抱歉没有清楚地说明问题并用我的例子误导了你们。在我的程序中,我不知道向量的长度,它取决于其他参数,并且这个问题涉及循环,所以我需要一个可以解决许多不同情况的通用解决方案,而不仅仅是我的示例。 感谢您的回答。
【问题讨论】:
-
假设你的向量是
letters[1:15]:matrix(c(letters[1:15],0), ncol=4)会给你一个4列的矩阵 -
x <- 1:15; m <- matrix(x, ncol = 4); m[-seq_along(x)] <- 0也许 -
@AdamQuek 感谢您的回答。实际上那个例子不是很清楚(我没有清楚地说明这个问题是不好的)。在我的程序中,我不知道向量的长度,所以我无法明确地填充矩阵。
-
请提供reproducible example 以及您迄今为止尝试过的代码。只是说“涉及循环”太含糊了。向我们展示您的预期输出。
-
例如:我需要将我的时间离散化到一些数值方法的应用中。让 Tmax 是我的时间跨度, h0 是我的初始步长。我需要两个步长:粗一个和一个细一个,这是代码:
h_coarse=h0*M^(-L+1) h_fine=h0*M^(-L) N_fine=round(Tmax/h_fine) N_coarse=round(Tmax/h_coarse)然后我需要生成一个布朗运动路径,并将更细的网格相加得到粗网格。我想使用矩阵和“应用”功能。这就是我问这个问题的原因。
标签: r