У меня есть 2 разных файла, один из которых представляет собой матрицу ввода (X), которая имеет 3823 * 63 элемента (3823 ввода и 63 объекта), а другой - вектор класса (R), который имеет 3823 * 1элементы;эти элементы имеют значения от 0 до 9 (есть 10 классов).
Я должен вычислить ковариационные матрицы для каждого класса.До сих пор я мог вычислять только средние векторы для каждого класса с таким количеством вложенных циклов.Тем не менее, это приводит меня к смерти мозга.
Есть ли другой простой способ?
Есть код для моей цели (спасибо Сэму Робертсу):
xTra = importdata('optdigits.tra');
xTra = xTra(:,2:64); % first column's inputs are all zero
rTra = importdata('optdigits.tra');
rTra = rTra(:,65); % classes of the data
c = numel(unique(rTra));
for i = 1:c
rTrai = (rTra==i-1); % Get indices of the elements from the ith class
meanvect{i} = mean(xTra(rTrai,:)); % Calculate their mean
covmat{i} = cov(xTra(rTrai,:)); % Calculate their covariance
end