Как пройти через несколько матриц в Matlab

У меня есть Mat файл, который при загрузке дает мне что-то вроде этого:

train0: [1200x300] train1: [1450x300].,,,,, trainN:[NX300]

то, что я хочу сделать, это пройтись по каждой матрице таким образом, как train+"i", где i = 0 до N, и создать матрицу NX1 со значением i. Здесь N будет количеством строк в каждой из матриц поездов.

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 в структуру позволяет вам манипулировать всеми загруженными матрицами как структурными полями.

Другие вопросы по тегам