2016-10-12 68 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