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