Загрузка файла MAT без создания промежуточной переменной - PullRequest
0 голосов
/ 31 января 2019

Я пытаюсь загрузить файл MAT и получить набор данных в качестве вывода.Если я запускаю

a = load('foo.mat');

, то - это структура, а не набор данных.Чтобы получить набор данных, мне нужно выполнить следующий код

load('foo.mat');
a = foo;

Хотя, таким образом, в моем рабочем пространстве у меня есть два идентичных набора данных, в частности a и foo .

Можно ли просто написать строку кода и импортировать файл MAT и получить один набор данных вместо двух?

Ответы [ 2 ]

0 голосов
/ 31 января 2019

Создайте отдельную функцию для загрузки ваших данных.

function[foo] = loader()
load('foo.mat');
end

Затем вызовите ее как:

a = loader();

Поскольку функция имеет закрытую область, вы можете загрузить переменные с помощьюимена, которые они имеют в файле Mat.Когда функция возвращается, вы присваиваете значение любому желаемому имени.

0 голосов
/ 31 января 2019

Это плохая идея сделать load без присвоения ей переменной, потому что это затрудняет отслеживание изменений в вашем рабочем пространстве.

Как правило,

a = struct2array(load('foo.mat'));

Но у этого есть некоторые ограничения (например, это работает, только если foo.mat содержит одну переменную).

...