> my_hash={'x',[1,1,3,1,5,6],'w',[1,2,3,1,4,5],'y',[1,1,1,4,4,6]} ,

>res={{'x'=>1,'w'=>1}=>[0,3],{'x'=>3,'w'=>3}=>[2],{'x'=>5,'w'=>4}=>[4],{'x'=>6,
> 'w'=>5}=>[5]},
>
> I know that at the 0-th and 3-th measurement point, 'x' and 'w' didn't  vary,
> so, any change in the function values is due to the change of 'y' from 1 to  4.

I still don't get it:

{'x'=>1,'w'=>1}=>[0,3]
means the 0th and 3rd point are both '1'

{'x'=>3,'w'=>3}=>[2]
means the 2nd point is 3 in both

{'x'=>5,'w'=>4}=>[4]
now it gets weird, this means the 4th position of x is 5 and of w is
4... Why only that result? Seems a little arbitrary, why doesn't the
result contain:
{'x'=>1,'w'=>2}=>[1]
?

And how come `y` is left out of the results alltogether?
How about this:
def whatever arr1, arr2
	h = {}
	arr1.each_with_index { |val, i|
		h[[val, arr2[i]]] ||= []
		h[[val, arr2[i]]].push i
	}
	h	
end


whatever([1,1,3,1,5,6], [1,2,3,1,4,5]) # => {[1, 2]=>[1], [5, 4]=>[4],
[3, 3]=>[2], [1, 1]=>[0, 3], [6, 5]=>[5]}

   -tim