如何在MATLAB中将一大列数据拆分为多列数据?

如何在MATLAB中将一大列数据拆分为多列数据?,matlab,multiple-columns,Matlab,Multiple Columns,我从一个文本文件中导入了一大列数据(400000多个数据点)。我需要将该列划分为多个长度为7000的列。它已按顺序排列,因此前7000个数据点将保留在第一列中,下7000个数据点将转到下一列,依此类推。您可以将数据重塑为二维矩阵,但所有列的长度必须相同(7000) 您可以只选择完整的列: x = rand(1,400000); N = 7000; cols = floor(length(x)/N); y = reshape(x(1:N*cols), [N,cols]); 或者,您可以填

我从一个文本文件中导入了一大列数据(400000多个数据点)。我需要将该列划分为多个长度为7000的列。它已按顺序排列,因此前7000个数据点将保留在第一列中,下7000个数据点将转到下一列,依此类推。

您可以将数据重塑为二维矩阵,但所有列的长度必须相同(7000)

您可以只选择完整的列:

x = rand(1,400000);    
N = 7000;
cols = floor(length(x)/N);
y = reshape(x(1:N*cols), [N,cols]);
或者,您可以填充最后一列(如使用零):


可以将数据重塑为二维矩阵,但所有列的长度必须相同(7000)

您可以只选择完整的列:

x = rand(1,400000);    
N = 7000;
cols = floor(length(x)/N);
y = reshape(x(1:N*cols), [N,cols]);
或者,您可以填充最后一列(如使用零):


使用重塑功能可以做到这一点

A = reshape(B,7000,[]);

使用重塑功能可以做到这一点

A = reshape(B,7000,[]);

使用
buffer
命令:

x = rand(400000,1);
[out,z]=buffer(x,7000);

此处,
out
对应于2D矩阵,每列中有
7000个元素。如果向量的长度不能被
7000
整除,则长度小于
7000
的最后一列数据将存储在
z

使用
缓冲区
命令:

x = rand(400000,1);
[out,z]=buffer(x,7000);

此处,
out
对应于2D矩阵,每列中有
7000个元素。如果向量的长度不能被
7000
整除,那么长度小于
7000
的最后一列数据将存储在
z
中,好的,谢谢!好的,知道了,谢谢!次要说明:使用此方法需要信号处理工具箱<代码>重塑
是MATLAB自带的。@rayryeng非常感谢,我会记下来的。没问题。不过还是给了你+1,因为这是一个很好的使用方法<代码>重塑
是MATLAB自带的。@rayryeng非常感谢,我会记下来的。没问题。仍然给你+1,因为这是一个很好的使用方法。你已经选择写你自己的答案。因此,接受您自己的答案以表示您不再需要帮助的SO社区,或者接受上述答案之一。根据SO规则,您必须在最初提出问题后48小时后才能接受您自己的答案。所以冷静点,雷荣,我会在时间到的时候开始的,我忘了有48小时的限制。我不知道你为什么叫我冷静下来,因为我没有生气。只是想确保人们知道这个问题已经解决了。另一方面,你可以继续接受任何其他答案,给他们一些代表性的分数:)接受自己的答案没有任何好处。你选择了写自己的答案。因此,接受您自己的答案以表示您不再需要帮助的SO社区,或者接受上述答案之一。根据SO规则,您必须在最初提出问题后48小时后才能接受您自己的答案。所以冷静点,雷荣,我会在时间到的时候开始的,我忘了有48小时的限制。我不知道你为什么叫我冷静下来,因为我没有生气。只是想确保人们知道这个问题已经解决了。另一方面,你可以继续接受其他任何一个答案,给他们一些代表点:)接受自己的答案不会有任何收获。