function data = getAxesData(AH,imageOnly) % data = getAxesData(AH,imageOnly) % % getAxesData extracts the data from the axes handle AH. % % Inputs: AH - [Ax1] List of axes handles % imageOnly - [1x1] Boolean indication of whether or not % extracted data should only correspond to % "image" data % % Outputs: data - [Dx1] Structure containing extracted data % (All data is included in the same struct, % even if A > 1) % data{}.x - X Data % data{}.y - Y Data % data{}.z - Z Data % % A = Number of axes % D = Number of data sets % % Copyright (c) 2011, Hidden Solutions, LLC % All rights reserved. % % Redistribution and use in source and binary forms, with or without % modification, are permitted provided that the following conditions are met: % % * Redistributions of source code must retain the above copyright % notice, this list of conditions and the following disclaimer. % * Redistributions in binary form must reproduce the above copyright % notice, this list of conditions and the following disclaimer in the % documentation and/or other materials provided with the distribution. % * Neither the name Hidden Solutions, LLC nor the names of any % contributors may be used to endorse or promote products derived from % this software without specific prior written permission. % % THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND % ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED % WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE % DISCLAIMED. IN NO EVENT SHALL HIDDEN SOLUTIONS, LLC BE LIABLE FOR ANY % DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES % (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; % LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND % ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT % (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS % SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. % % Author: James S. Hall (Hidden Solutions, LLC) % Date: 10 August 2011 % % Set default imageOnly if nargin < 2 imageOnly = false; end % Initialize data counter dd = 1; % Step through each axes handle for aa = 1:length(AH) % Get plot handles PH = get(AH(aa),'Children'); % Step through each plot handle for pp = 1:length(PH) % Ignore plot handle if imageOnly AND 'CData' isn't available if ~imageOnly || isfield(get(PH(pp)),'CData') % Assign x and y data data{dd}.x = get(PH(pp),'XData'); data{dd}.y = get(PH(pp),'YData'); % Store z data z = []; if isfield(get(PH(pp)),'ZData') z = get(PH(pp),'ZData'); elseif isfield(get(PH(pp)),'CData') z = get(PH(pp),'CData'); end % Assign z data (if available) if ~isempty(z) data{dd}.z = z; end % Increment counter dd = dd + 1; end end end % Remove cell structure if appropriate if length(data) == 1 data = data{1}; end end