I am trying to create a matlab plot with multiple x-axis one below another and just one y-axis.
I have looked through the Mathworks file exchange and there are only suggestions/scripts for multiple y-axis. I would like to achieve something like this question for R.
Here is an example solution if you only need a second axis for showing a different scale (Jeff_K's solution but more worked out):
first_axis = gca;
sqz = 0.12; %// distance to squeeze the first plot
set(first_axis, 'Position', get(first_axis, 'Position') + [0 sqz 0 -sqz ]);
ax2 = axes('Position', get(first_axis, 'Position') .* [1 1 1 0.001] - [0 sqz 0 0],'Color','none');
scale_factor = 42; %// change this to your satisfaction
xlim(get(first_axis, 'XLim') * scale_factor);
set(ax2, 'XScale', get(first_axis, 'XScale')); %// make logarithmic if first axis is too