L oop для загрузки файлов .dat - PullRequest
0 голосов
/ 26 мая 2020

Я хочу загрузить 13 файлов .dat, которые я сохранил в папке. При этом:

dir 'C:\modelana\psteptrue\' %folder where are the files I want to load
myFiles = dir ('*.dat');
for days=1:13
    myData = load(myFiles(days).name);
end

Я просто могу получить на своем рабочем месте последний файл в папке. Как будто он обнаруживает все файлы, которые я хочу прочитать. Но я получаю данные только последнего сохраненного.

Что мне там не хватает?

1 Ответ

0 голосов
/ 26 мая 2020

добро пожаловать в stackoverflow. Я завершил решение @rinkert полным кодом, чтобы указать на некоторые другие возможности для улучшения вашего кода.

Сделайте все гибким. То есть вы можете использовать функцию fullfile для построения путей, которые подходят вашей операционной системе. В частности, при загрузке файлов они должны находиться в вашем рабочем каталоге. Таким образом, ниже они могут храниться где угодно =)

То же самое и с циклом. Отметьте length переменной, которую вы хотите просмотреть.

И, наконец, выделите свою память перед l oop. Поскольку MATLAB хранит данные последовательно и, следовательно, должен копировать их в другое место в вашей оперативной памяти, если переменные растут.

% path to folder
p2fldr = 'C:\modelana\psteptrue';
% get list of files with a certain extension
Lst = dir( fullfile(p2fldr,'*.dat') ); 

% allocate memory
myData = cell(length(Lst),2);
% loop through files
for i = 1:length(Lst)
    % create path 2 file
    p2fl = fullfile(Lst(i).folder,Lst(i).name);
    % load file
    Dat = load( p2fl );
    % assign loaded date to cell-array
    myData{i,1} = Dat;
    % you may wan to keep the corresponding path/filename
    myData{i,2} = p2fl;
end
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...