Взаимодействия (статистика) в matlab

Мне было интересно, есть ли функция, которая может дать мне все взаимодействия, учитывая вход векторов.

например:

Если бы у меня было три вектора a, b, c. Их значения:

a = [1,9,3]
b = [4,3,2]
c = [6,5,7]

то я могу вернуть матрицу с:

[a.*b, a.*c, b.*c ]

matlab,statistics,

0

Ответов: 1


1

Необходимое вычисление не имеет встроенной функции, но вы всегда можете написать свой собственный:

%% Define the vectors
a = [1,9,3];
b = [4,3,2];
c = [6,5,7];

%% test function
pairWiseAppend(a,b,c)

%% Define the function
function customVector = pairWiseAppend(a,b,c)
    %multiply and generate new vectors
    vec1 = a.*b;
    vec2 = a.*c;
    vec3 = b.*c;
    %append the vectors
    customVector = [vec1,vec2,vec3];
end

Вывод:

>> stckOvrflow1

ans =

     4    27     6     6    45    21    24    15    14

Кроме того, вы всегда можете изменить функцию в соответствии с вашими потребностями, например, это вернет двумерный массив:

%% Define the vectors
a = [1,9,3];
b = [4,3,2];
c = [6,5,7];

%% test function
customArray = pairWiseAppend(a,b,c)

%% Some extra actions on returned array


%% Define the function
function customArray = pairWiseAppend(a,b,c)
    %multiply and generate new vectors
    vec1 = a.*b;
    vec2 = a.*c;
    vec3 = b.*c;
    %append the vectors
    customArray = [vec1;vec2;vec3];
end

Вывод:

>> stckOvrflow1

customArray =

     4    27     6
     6    45    21
    24    15    14

Надеюсь, поможет.

MATLAB, статистика,
Похожие вопросы