Допустим, у меня есть файл .mat с несколькими экземплярами одинаковой структуры, каждый из которых имеет свое имя переменной.
Я хочу обработать каждый экземпляр, найденный в файле (который я нахожу, используя whos('-file' ...
),Я надеялся, что load
позволит мне указать имя назначения для переменной, чтобы мне не приходилось беспокоиться о коллизиях (и чтобы мне не приходилось писать самоизменяющийся код в стиле eval
).
Кажется, что грубым способом сделать это является создание вспомогательной функции, которая, используя переменные с именами, которые, как мы надеемся, не конфликтуют с содержимым .mat, выполняет что-то вроде:
- Делает
whos
в файле, чтобы получить содержащиеся имена. - Итеративно загружает каждую содержащуюся структуру.
- Использует
eval
, чтобы назначить загруженную структуру, скажем, в массив ячеек (где один столбец массива содержит имена структур файла .mat и соответствующий столбец с фактическим содержимым каждой структуры из файла .mat).
Нет более элегантного способа сделать то же самое?вещь