Matlab - 通过循环生成多个矩阵

时间:2016-03-06 15:50:02

标签: matlab loops matrix

我有一个带有+ 16M数据的向量,我必须在每个401x401元素的101个矩阵中对其进行转换。我知道如何独立创建这样的矩阵(为每个矩阵编写一个循环)但我认为必须有一些方法来创建所有这些矩阵使用两个或更多循环。问题是,我不确切知道如何做到这一点。 这是我到目前为止所尝试的:

data=load('file.dat');%This file contains 3 columns of data, I only need the first one
var=data(:,1);
p=401;%Size of the matrices
for n=0:400
    mat1(n+1,:)=var(p*n+1:p*(n+1),:);
end

此代码将创建第一个401x401矩阵。通过更改索引,我可以(单独)创建其余的,但我更愿意添加另一个循环(或循环)来自动创建它们,而不是重复这个代码一百次。

1 个答案:

答案 0 :(得分:0)

函数mat = vec2mat(vec,matcol)将向量vec转换为具有matcol列的矩阵,一次创建一行。如果vec的长度不是matcol的倍数,则会在垫的最后一行放置额外的零。矩阵垫有ceil(length(vec)/matcol)行。 另请参阅manual entry