Довольно новичок в 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