Я хотел бы включить цикл в свой скрипт, который находит корреляцию между всеми возможными комбинациями данных. Это можно сделать вручную с помощью следующего кода:цикл по всем возможным комбинациям
clear all
%generate fake data
LName={'Name1','Name2','Name3'};
Data={rand(12,1),rand(12,1),rand(12,1)};
%place in a structure
d = [LName;Data];
Data = struct(d{:});
%find the correlation
[R,P] = corrcoef(Data.Name1,Data.Name2);
[R2,P2] = corrcoef(Data.Name1,Data.Name3);
[R3,P3] = corrcoef(Data.Name2,Data.Name3);
Однако, я хотел бы сделать это в цикле, я начал, но потерпели неудачу на первое препятствие. Моя попытка цикла, который не работает как показано ниже:
SNames=fieldnames(Data);
for i=1:numel(SNames);
[R{i},P{i}] = corrcoef(Data.(SNames{i}),Data.(SNames{i+1}));
end
Я изо всех сил на зная, как сказать MATLAB, чтобы перебрать другой комбинации значений с каждой итерации.
Любая предоставленная помощь была бы высоко оценена.
работает отлично. Однако для ссылки в будущем можно использовать разные пары: combnk (1: 3,2), то есть если вы хотите найти корреляцию между тремя элементами, вы должны изменить эту строку на пары = combnk (1: 3,3)? Спасибо за помощь. – user1053544
Это будет работать, только если у вас есть панель инструментов статистики –
да, но выбор 3 элементов из 3 возможных индексов имеет только одну возможность (1,2,3). И что такое корреляция между тремя элементами ...? –