2016-10-12 41 views
0

我想知道是否有一个函数可以给我所有的输入矢量的相互作用。matlab中的交互(统计)

例如:

如果我有三个向量a,b,c。他们的价值观是:

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

然后我就可以得到一个矩阵:

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

“* c”是什么意思? – PseudoAj

+0

@PseudoAj它是MATLAB的语法。 'b。* c'表示将矢量'b'和'c'按元素方式相乘以生成一个新的矢量。 – rayryeng

+0

@raryeng谢谢。 – PseudoAj

回答

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 

希望它能帮助。

+0

谢谢,但我需要它是可变的IV(自变量)的数量,因为它容易做3 IV,但对于6? – user1681664