0
我想知道是否有一个函数可以给我所有的输入矢量的相互作用。matlab中的交互(统计)
例如:
如果我有三个向量a,b,c。他们的价值观是:
a = [1,9,3]
b = [4,3,2]
c = [6,5,7]
然后我就可以得到一个矩阵:
[a.*b, a.*c, b.*c ]
我想知道是否有一个函数可以给我所有的输入矢量的相互作用。matlab中的交互(统计)
例如:
如果我有三个向量a,b,c。他们的价值观是:
a = [1,9,3]
b = [4,3,2]
c = [6,5,7]
然后我就可以得到一个矩阵:
[a.*b, a.*c, b.*c ]
所需的计算不具有一个内置的功能,但你总是可以写你自己:
%% 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
希望它能帮助。
谢谢,但我需要它是可变的IV(自变量)的数量,因为它容易做3 IV,但对于6? – user1681664
“* c”是什么意思? – PseudoAj
@PseudoAj它是MATLAB的语法。 'b。* c'表示将矢量'b'和'c'按元素方式相乘以生成一个新的矢量。 – rayryeng
@raryeng谢谢。 – PseudoAj