У меня есть файл filedata.mat, содержащий структуру 1x1 с подуровнями, которые содержат данные из каналов транспортных средств. файл имеет около 30 измеренных каналов. Имена каналов, единицы измерения и значения каналов (в зависимости от времени) хранятся на отдельных подуровнях.
Я хочу указать, какие каналы (то есть, какие столбцы данных) по номеру столбца, и иметь код, чтобы поместить данные в матрицу с именами каналов в строке 1 и единицами канала в строке 2.
Код, который у меня сейчас есть, находится ниже:
clear all;
channels = [1 4 8];
source = load('filedata.mat');
N = size(channels,2);
I = size(source.Data.DataOut,1) + 2;
data = zeros(I,N);
for i = (1:1:I)
for n = (1:1:N)
if i == 1
data(i,n) = source.Data.ChannelNames{channels(n)};
elseif i == 2
data(i,n) = source.Data.ChannelUnits{channels(n)};
else
data(i,n) = source.Data.DataOut{i,channels(n)};
end
end
end
Я думаю, что это поместит имена каналов в строку 1 (т.е. когда i = 1), каналы в строке 2 (когда i = 2), а затем разместит все оставшиеся строки данных до i = I.
Однако, когда я запускаю этот код, я получаю сообщение об ошибке «Несоответствие размера подписанного назначения». в строке 14:
data(i,n) = source.Data.ChannelNames{channels(n)};
Если кто-то может предложить решение и - возможно, что еще более важно - объяснить, где я ошибся (чтобы я мог чему-то научиться!), Я был бы очень признателен.
Заранее спасибо.