r - 类似于 R 在 Matlab 中的 rep 的功能

标签 r matlab

<分区>

我正在寻找一个与 R for Matlab 中的 rep 函数类似的函数。例如,使用 rep 我可以执行以下操作:

> rep(c(1,2,3),times=3)
[1] 1 2 3 1 2 3 1 2 3

> rep(c(1,2,3),each=3)
[1] 1 1 1 2 2 2 3 3 3
> 

在matlab中有repmat函数完成了第一部分

>> repmat([1,2,3],1,3)

ans =

     1     2     3     1     2     3     1     2     3

但不是第二部分(或者至少我不知道该怎么做)。

有什么建议吗?

最佳答案

通过首先定义一个函数,您可以相当接近地重现 R 中 rep 函数的语法:

function [result]=rep(array, count)
matrix = repmat(array, count,1);
result = matrix(:);

然后您可以通过调用行向量或列向量来重现所需的行为:

>> rep([1 2 3],3)
ans =
 1     1     1     2     2     2     3     3     3

>> rep([1 2 3]',3)
ans =
 1     2     3     1     2     3     1     2     3

请注意,我在第二次调用中使用转置 (') 运算符将输入数组作为列向量(3x1 矩阵)传递。

我在我的笔记本电脑上对此进行了基准测试,对于一个包含 100,000 个元素重复 100 次的基本数组,它比使用上面的 ceil 选项快 2 到 8 倍,具体取决于您想要第一种还是第二种排列。

关于r - 类似于 R 在 Matlab 中的 rep 的功能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14615305/

相关文章:

r - R中的神经网络包-如何在训练收敛之前获得权重?

matlab - 如何找到当前运行代码的文件扩展名?

java - 将 Java 与 Matlab 一起使用 : passing Class type as a method argument

c++ - 二维点的边界

r - 使用 lapply 和 get 时的 data.table 列顺序

regex - 在正则表达式中转义管道 ("|")

MATLAB 获取颜色图名称列表

arrays - 如何从元胞数组调用函数句柄?

r - 如何在R中使插槽填充多个相同类型的对象?

r - 在 R 中使用 data.table 包对列求和 - 获取 GForce sum(gsum) 错误