如何在MATLAB中将大量数据分成多列数据?

时间:2014-07-10 13:44:01

标签: matlab multiple-columns

我从文本文件导入了大量数据(400,000多个数据点)。我需要将列分成多个长度为7,000的列。它已按顺序排列,因此前7,000个数据点将保留在第一列中,接下来的7,000个数据点将保留在下一列中,依此类推......

3 个答案:

答案 0 :(得分:3)

您可以将数据重新整形为2D矩阵,但所有列的长度必须相同(7,000)。

您可以只选择完整列:

x = rand(1,400000);    
N = 7000;
cols = floor(length(x)/N);
y = reshape(x(1:N*cols), [N,cols]);

或者,您可以填充最后一列(例如,使用零):

x = rand(1,400000);    
N = 7000;
cols = ceil(length(x)/N);
y = zeros(N, cols);
y(1:length(x)) = x;

答案 1 :(得分:2)

使用buffer命令:

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

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

答案 2 :(得分:1)

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

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