Arrays 在没有repmat MATLAB的情况下多次重复向量

Arrays 在没有repmat MATLAB的情况下多次重复向量,arrays,matlab,Arrays,Matlab,我有一个非常大的向量,列格式,我想重复这个向量多次。适用于小型阵列的简单方法是repmat,但我的内存不足。我使用了bsxfun,但仍然没有成功,MATLAB给了我一个使用的内存错误。你知道怎么做吗 下面是简单的代码(仅供演示): 或使用bsxfun: tt=bsxfun(@times,t, ones(length(t),length(t))); 这里的问题只是数据太多,它与repmat函数本身无关。为了验证数据是否过多,您可以简单地尝试创建一个具有清晰工作区的该大小数据的矩阵来重现错误。在

我有一个非常大的向量,列格式,我想重复这个向量多次。适用于小型阵列的简单方法是
repmat
,但我的内存不足。我使用了
bsxfun
,但仍然没有成功,MATLAB给了我一个使用
的内存错误。你知道怎么做吗

下面是简单的代码(仅供演示):

或使用bsxfun:

 tt=bsxfun(@times,t, ones(length(t),length(t)));

这里的问题只是数据太多,它与repmat函数本身无关。为了验证数据是否过多,您可以简单地尝试创建一个具有清晰工作区的该大小数据的矩阵来重现错误。在我的系统上,我收到以下错误:

>> clear
>> a = ones(89759,89759)
Error using ones
Requested 89759x89759 (60.0GB) array exceeds maximum array size preference. Creation of arrays greater than
this limit may take a long time and cause MATLAB to become unresponsive. See array size limit or preference
panel for more information.
因此,您基本上需要减少正在处理的数据量


另外,我应该注意到,绘图将保留对数据的引用,因此,即使您尝试“分块”绘图,您仍然会遇到相同的问题。因此,您需要从根本上减少正在处理的数据量

这里的问题只是数据太多,与repmat函数本身无关。为了验证数据是否过多,您可以简单地尝试创建一个具有清晰工作区的该大小数据的矩阵来重现错误。在我的系统上,我收到以下错误:

>> clear
>> a = ones(89759,89759)
Error using ones
Requested 89759x89759 (60.0GB) array exceeds maximum array size preference. Creation of arrays greater than
this limit may take a long time and cause MATLAB to become unresponsive. See array size limit or preference
panel for more information.
因此,您基本上需要减少正在处理的数据量


另外,我应该注意到,绘图将保留对数据的引用,因此,即使您尝试“分块”绘图,您仍然会遇到相同的问题。因此,您需要从根本上减少正在处理的数据量

问题不是重复,而是处理如此大量的数据。你为什么需要这样的重复?有一种方法可以在不重复数据的情况下处理数据?我正在尝试找到两条曲线的交点。。。每条曲线都包含大量数据。。。我的想法是将数据分成更小的部分,但这会造成更大的混乱…我使用的代码如下:代码编写得非常好,但对于大型数组,它会产生内存错误。也许你应该在曲线上采样更少的点?问题不是重复,而是处理了如此大量的数据。你为什么需要这样的重复?有一种方法可以在不重复数据的情况下处理数据?我正在尝试找到两条曲线的交点。。。每条曲线都包含大量数据。。。我的想法是将数据分成更小的部分,但这会造成更大的混乱…我使用的代码如下:代码编写得非常好,但对于大型数组,它会产生内存错误。也许你应该在曲线上采样更少的点?好的,我用另一种方式处理这个问题,可以显著降低维数... 谢谢你的帮助好吧,我用另一种方式解决了这个问题,可以显著降低维度。。。谢谢你的帮助