Итеративное изменение вложенных структур Matlab в матрицы для построения гистограмм - PullRequest
0 голосов
/ 07 августа 2020

Довольно новичок в Matlab, поэтому, пожалуйста, простите за плохое кодирование. У меня есть данные для разных категорий (9 категорий) с разным количеством точек данных в каждой категории. Я создал структуру, которая содержит точки данных для разных категорий. Я считаю, что категории сами по себе являются структурами внутри более крупной структуры.

Я хочу построить гистограмму для каждой категории. Первое, что я попробовал, - это просто создать for-l oop и построить гистограмму для каждой категории в структуре, но это не удалось, потому что гистограмма не принимает структуры. Следующее, что я попытался сделать, это создать еще один для l oop, который изменил бы структуру, содержащую каждую категорию в массив ячеек, но это также не удалось с ошибкой:

if isnumeric(c{1}) || ischar(c{1}) || islogical(c{1}) || isstruct(c{1})

Я могу индивидуально изменить каждую категорию на массив ячеек, а затем на матрицу, что позволило мне создать одну гистограмму. Есть ли способ сделать это с помощью al oop? Мой код ниже. Спасибо.

data = readtable('');
data = table2array(data);
Trial = data(:,1);
dist = data(:,2);
Time = data(:,3);
intstim = data(:,4);
color = data(:,5);
UniqueDist = unique(dist);
for ii = 1.0:length(UniqueDist)
    idx = find(dist == UniqueDist(ii));
    distTime(ii).data = Time(idx);
    distTime(ii).data = distTime(ii).data(distTime(ii).data ~= 0);
end
for jj =1.0:length(distTime)
    distTime(jj).data = struct2cell(distTime(jj));
    distTime(jj).data = cell2mat(distTime(jj));
    
    
end


...