compare matrix elements
compare matrix elements
(OP)
Hi all. I'm new in matlab and i want to do smth like that:
Having two matrixes(vectors is better), like
A=[1;2;6;3;5;8]
B=[4;6;9;7;4;5]
I want to compare all elements of A to B, and if an element of A is same with one of B (not in same position necessarilly) to be written in another vector. In this example, i want to create a vector like
C=[6;5]
I spent many hours reading help documentation on matrixes but to no avail. I found smth like 'any' but did not understand it's functionality, and especially if it feets my needs.
Is this ....SO difficult...? I do not suppose so, but is there anyone here available to show me how?
Thanx in advance.
Having two matrixes(vectors is better), like
A=[1;2;6;3;5;8]
B=[4;6;9;7;4;5]
I want to compare all elements of A to B, and if an element of A is same with one of B (not in same position necessarilly) to be written in another vector. In this example, i want to create a vector like
C=[6;5]
I spent many hours reading help documentation on matrixes but to no avail. I found smth like 'any' but did not understand it's functionality, and especially if it feets my needs.
Is this ....SO difficult...? I do not suppose so, but is there anyone here available to show me how?
Thanx in advance.





RE: compare matrix elements
[ra ca]=size(A);
[rb cb]=size(B);
t=1;
for i=1:ra
for j=1:ca
for k=1:rb
for l=1:cb
if A(i,j)==B(k,l)
C(t)=A(i,j);
t=t+1;
end;
end;
end;
end;
end;
There is another way, using function 'find':
[ra ca]=size(A);
[rb cb]=size(B);
t=1;
for i=1:ra
for j=1:ca
if isempty(find(B==A(i,j)))==0
C(t)=A(i,j);
t=t+1;
end;
end;
end;
Function find returns every value and index sattisfies the condition between brackets. If condition is not satisfied returns empty value. 'isempty' returns 1 if inside its brackets there is empty value.
I don't know which one is faster, because I think that behind function find there are for loops (and mabye for loops will be more direct). Only in case you work with larger matrixs.
Good luck
RE: compare matrix elements
What is wrong with this
A=[1;2;6;3;5;8]
B=[4;6;9;7;4;5]
C=intersect(A,B)
M
--
Dr Michael F Platten
RE: compare matrix elements
RE: compare matrix elements
B(sum(perms(A)==B(:,ones(1,factorial(length(A))))')>0)
RE: compare matrix elements
At this point, the only thing i understand in the line above, is 'sum' (lol). It seems that i have to do a lot of reading!
Oh, i can also understand 'length' :P
(grateful)