如何在matlab中遍历多个矩阵

时间:2012-11-24 21:15:38

标签: matlab

我有一个mat文件,加载后会给我这样的东西:

train0:[1200x300] TRAIN1:[1450x300] 。 。 。 。 。 。 trainN:[NX300]

我想做的是以火车+“i”的方式遍历每个矩阵,其中i = 0到N 并创建值为i的NX1矩阵。这里N将是每个列车矩阵中的行数。

1 个答案:

答案 0 :(得分:1)

尝试将文件加载到sturct

ld = load(matfilename);
numRow = structfun( @(x) size(x,1), ld );

更复杂的方法可能是:

ld = load(matfilename);
matNames = fieldnames( ld );
numRows = zeros( 1, numel(matNames) );
for fi = 1:nueml(matNames)
    tkn = regexp( matNames{fi}, '^train(\d+)$', 'tokens', 'once' );
    ii = str2double( tkn{1} );
    numRows(ii) = size( ld.(matNames{fi}), 1 );
end

无论如何,将mat文件加载到struct中允许您将所有加载的矩阵作为struct字段进行操作。