У меня есть серия матовых файлов с именем m1 ... m38. Мне нужно, чтобы быть в состоянии получить доступ ко всем из них сразу, поэтому я использую следующие команды:петля над матами - Matlab
fileList=dir('cleanSample*');
m1=matfile(fileList(1).name);.....
Я зашиты все операторы matfile.
Я тогда нужно перебрать все эти файлы и извлечь определенную строку из матрицы, содержащейся в:
for i=1:num1
arrWrite=m1.outputArray(i,:);
for j=2:num2
thename=sprintf('m%i',j);
addArray=thename.outputArray(i,:);
Однако на последней строке, я получаю сообщение об ошибке: «Попытка ссылки на поле из не -структурный массив ". Есть ли способ сделать это, не зацикливая на всех матовых файлах?
Редакция:Редактировать: около 20 ГБ матовых файлов, поэтому я не могу хранить их все в памяти одновременно.
Если вы посмотрите на редактирование, он не может загрузить весь файл matfile в память. Поэтому он должен открыть их один за другим и изменить то, что у него есть. Основная проблема заключается не в цикле. Потому что я преуспел. Проблема заключается в том, как хранить обратно. – Vuwox
объекты matfile не загружают содержимое в память: они просто обрабатывают файлы. – Peter
Вы правы. Я использую так много «загрузки» – Vuwox