# Compare two columns under 3 conditions

1 view (last 30 days)
Francisco Anaya on 2 Apr 2019
Commented: Francisco Anaya on 2 Apr 2019
Hi,
I an array (phases) with two vector of the same lenght. I need to compare the two vectors under the following conditios:
phases(:,1) phases(:, 2)
1................................. 2
1................................. 2
1................................. 2
2................................. 2
2................................. 2
2................................. 1
2................................. 1
2................................. 1
2................................. 1
1................................. 1
1................................. 1
1................................. 1
condition 1: I want to know the number of times phases(:,1) and phases(:, 2) are both 2 in the same row. In this case, there are 2 times.
condition 2: I want to know the number of times phases(:, 2) is equals to 2 when phases(:,1) is equals to 1 in the same row. In this case, there are 3 times.
condition 3: I want to know the number of times phases(:, 1) is equals to 2 when phases(:, 2) is equals to 1 in the same row. In this case, there are 4 times.
Thank you!

madhan ravi on 2 Apr 2019
your 2nd & 3rd conditions are the same?
Francisco Anaya on 2 Apr 2019
yes, they are same...
following your example below, then it should be....?
nnz(phases(:,2) == 2 & phases(:,2) == 2)
nnz(phases(:,1) == 1 & phases(:,2) == 2)
nnz(phases(:,1) == 2 & phases(:,2) == 1)
Francisco Anaya on 2 Apr 2019
it works only for condition 2 and 3...
phases= [1 1 1 2 2 2 2 2 2 1 1 1; 2 2 2 2 2 1 1 1 1 1 1 1]';
>> nnz(phases(:,2) == 2 & phases(:,2) == 2)
ans =
5
>> nnz(phases(:,1) == 1 & phases(:,2) == 2)
ans =
3
>> nnz(phases(:,1) == 2 & phases(:,2) == 1)
ans =
4

Shunichi Kusano on 2 Apr 2019
The following code counts the number of rows which meet the condition 2.
nnz(phases(:,2) == 2 & phases(:,1) == 1)
hope this helps.