2016-07-30 8 views
0

4つの列(A、B、C、D)にそれぞれテキスト、数値、文字の組み合わせのデータがあります。MATLABを使用して4-way venn図の各領域の値を計算する方法

例:RE(-18.01)AEEPSAFMTRL( - 98)の4つの列が1列だけ、2の一部の、3でいくつかとの一部の中に存在するいくつかのそのような文字列を含む.R

可能なすべての組み合わせで4つすべて。また、列のサイズも異なります。

すべての可能な組み合わせの値を与えることができる4ウェイベンの図を作成する必要があります。

私はベン図を作成する必要はありません、私はちょうどあなたがデータXの所定の列と別のY、Xとの交点を求めているMATLAB

おかげ

答えて

1

を使用して値を必要としますまたはYは、別の対の列の間の交差点であってもよい。

レッツZは列X、Yの交点であるMATLABで列ベクトルZはZ = X(any(bsxfun(@eq, X, Y'), 2));

これはA、B、C、およびDの間の最初の交差点を比較することになる短いスクリプトが、Iでありますあなたに残りを残す。

% Intersection function 
f = @(X,Y) X(any(bsxfun(@eq, X, Y'), 2)); 
% Matrix M of all columns, built however you have it 
M = zeros(max([size(A,1),size(B,1),size(C,1),size(D,1)]), 4); 
M(1:size(A,1),1) = A; M(1:size(B,1),2) = B; 
M(1:size(C,1),3) = C; M(1:size(D,1),4) = D; 
M(M==0) = nan; % Empty space in M is nan, which won't trigger as equal 
k = 1; 
% Compares and stores AB, AC, AD, BC, ... 
for i = 1 : (size(M,2)-1) 
    for j = (i+1) : size(M,2) 
     n = numel(f(M(:,i), M(:,j))); 
     N(1:n, k) = f(M(:,i), M(:,j)); k=k+1; 
    end 
end 
関連する問題