Code covered by the BSD License  

Highlights from
Data Browser

image thumbnail
from Data Browser by Phil Larimer
A utility to browse data files that involve one or more channels of data over time.

setAxisLabels(axisHandle)
function setAxisLabels(axisHandle)

	if nargin < 1
		axisHandle = gca;
	end
	
	mSecs = get(axisHandle, 'xtick');
	
	numDigits = -(fix(log((mSecs(2) - mSecs(1))/1000) / log(10))) + 1;
	if numDigits < 1
		numDigits = 0;
	end
	if mSecs(end) > 100000
		% minutes
		for i = 1:size(mSecs, 2)
			if numDigits > 0
				timeFormat{i, :} =  [sprintf('%0.0f', fix(mSecs(i) / 60000)) ':' sprintf(['%0' num2str(3 + numDigits) '.' num2str(numDigits) 'f'], mod(mSecs(i), 60000) / 1000)];
			else
				timeFormat{i, :} =  [sprintf('%0.0f', fix(mSecs(i) / 60000)) ':' sprintf('%02.0f', mod(mSecs(i), 60000) / 1000)];
			end
		end
		timeFormat{end} = ['            ' timeFormat{end} ' minutes'];
	elseif mSecs(end) > 1000
		% seconds
		for i = 1:size(mSecs, 2)
			timeFormat{i, :} =  sprintf(['%' num2str(2 + numDigits) '.' num2str(numDigits) 'f'], mSecs(i) / 1000);
		end			
		timeFormat{end} = ['             ' timeFormat{end} ' seconds'];
	else
		% msecs
		numDigits = numDigits - 3;
		if numDigits < 0
			numDigits = 0;
		end
		for i = 1:size(mSecs, 2)
			timeFormat{i, :} =  sprintf(['%0.' num2str(numDigits) 'f'], mSecs(i));
		end	
		timeFormat{end} = ['         ' timeFormat{end} ' msec'];
	end
	set(axisHandle, 'xticklabel', timeFormat)

Contact us at files@mathworks.com