So I'm not a 100% sure I understood your question, specially the part about 'append the signal strengths along the various columns, if they are different I wish to create a new row.'
I wrote a little script that given your two matrices x and y you provided it spits out the following matrix:
1.00000 1.00000 20.00000 0.00000
3.00000 1.00000 40.00000 0.00000
5.00000 1.00000 10.00000 0.00000
2.00000 2.00000 50.00000 30.00000
4.00000 2.00000 80.00000 20.00000
5.00000 3.00000 60.00000 0.00000
3.00000 3.00000 80.00000 0.00000
1.00000 3.00000 40.00000 40.00000
2.00000 4.00000 50.00000 90.00000
3.00000 5.00000 50.00000 0.00000
4.00000 3.00000 70.00000 0.00000
5.00000 4.00000 20.00000 0.00000
0.00000 2.00000 10.00000 0.00000
2.50000 4.00000 70.00000 0.00000
4.00000 4.00000 80.00000 0.00000
0.00000 4.00000 30.00000 0.00000
1.00000 5.00000 60.00000 0.00000
2.00000 5.00000 40.00000 0.00000
3.00000 4.00000 80.00000 0.00000
4.00000 5.00000 20.00000 0.00000
If it saw that it had the same long,lang coordinates it added the second value to a fourth column. If they didn't match it just left it as 0. I made one assumption for this script to work: the long,lang coordinates cannot be repeated within a matrix. Meaning a matrix x cannot have two coordinates 1,5 and 1,5. I think this is a reasonable assumption.
If by append you mean add the signal intensities together, you can modify the code easily to achieve this. As far as the actual problem you're tackling I have no idea what you're doing but it sounds interesting. Let me know if it worked! (The code outputs some warnings, it's safe to ignore them I reckon). Here is the function:
function temp=n_merge(A,B)
%Assumption 1:long, lang coordinates do not repeat within matrix A
%Assumption 2:long, lang coordinates do not repeat within matrix B
%Creating output matrix (over-allocating size)
temp=[A;zeros(size(B,1),3)];
temp=[temp zeros(size(temp,1),1)];
%Initializing variables for for-loop
counter=1;
sp=size(A,1);%starting point
for i=1:size(B,1)
b=sum(B(i,1:2)==A(:,1:2),2);
if isempty(find(b==2))%if the long,lang coordinates are not in matrix A
temp(sp+counter,1:3)=B(i,1:3);
counter=counter+1;
else %if the long,lang coordinates are in matrix B
temp(find(b==2),4)=B(i,3);
end
end
%Removing all rows with 0's on them
temp(all(temp==0,2),:)=[];
Good luck!