переменная в чтении структуры данных в MATLAB - PullRequest
0 голосов
/ 02 мая 2018

Я хотел бы прочитать определенную переменную AandB_cossy из N файлов Matlab. Для этого я использовал, как показано ниже. Для чтения значений мы обычно используем Noplate1.AandB_cossy(:,1). Это отлично работает. Я сомневаюсь, что когда я назначу Noplate1, Noplate2, Noplate3, как мне читать, не задавая AandB_cossy снова, чтобы прочитать значения для каждого? Можно ли сделать что-то вроде Noplate1.var(:,1) ?? Любая помощь высоко ценится. Большое спасибо.

clearvars; close all; clc;
var='AandB_cossy';
Noplate1=load('dummy1.mat',var);
Noplate2=load('dumsabs2.mat',var);
Noplate3=load('yipposbn123.mat',var);

1 Ответ

0 голосов
/ 02 мая 2018

Вы можете использовать var для индексации в структуре Noplate1 следующим образом:

var = 'AandB_cossy';
Noplate1 = load('dummy1.mat',var);
Noplate1.(var)(:,1);

Чтобы прочитать много файлов, проще всего перечислить их имена в списке (вы можете использовать функцию dir, чтобы сгенерировать этот список, например, если это все файлы в каталоге). Затем вы перебираете список и считываете значения в массив ячеек:

fnames = {'dummy1.mat','dumsabs2.mat','yipposbn123.mat'};
var = 'AandB_cossy';
Noplate = cell(size(fnames));
for ii = 1:numel(fnames)
   tmp = load(fnames{ii},var);
   Noplate{ii} = tmp.(var);
end

Теперь вы можете получить доступ к каждому массиву данных как Noplate{1}, Noplate{2} и т. Д.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...