function copyStylingFrom(figNumSource, figNumTgt) % Get handles to the source and target figures sourceFig = figure(figNumSource); targetFig = figure(figNumTgt); % Get axes of source and target figures sourceAxes = findall(sourceFig, 'type', 'axes'); targetAxes = findall(targetFig, 'type', 'axes'); % Ensure the number of axes match if length(sourceAxes) ~= length(targetAxes) error('Number of axes in source and target figures must be the same.'); end % Loop through each pair of axes and copy styling properties for i = 1:length(sourceAxes) copyAxesProperties(sourceAxes(i), targetAxes(i)); end % Apply general figure properties if desired targetFig.Color = sourceFig.Color; % Background color end function copyAxesProperties(sourceAx, targetAx) % List of properties to copy from source to target axes propsToCopy = {'XColor', 'YColor', 'ZColor', 'FontSize', 'FontName', ... 'GridColor', 'GridLineStyle', 'MinorGridColor', 'Box', ... 'XGrid', 'YGrid', 'ZGrid', 'XMinorGrid', 'YMinorGrid', 'ZMinorGrid', ... 'LineWidth', 'TitleFontSizeMultiplier', 'LabelFontSizeMultiplier'}; % Copy properties from source to target for i = 1:length(propsToCopy) try targetAx.(propsToCopy{i}) = sourceAx.(propsToCopy{i}); catch % Skip property if it doesn't exist or can't be copied end end % Copy axis labels and titles targetAx.Title.String = sourceAx.Title.String; targetAx.XLabel.String = sourceAx.XLabel.String; targetAx.YLabel.String = sourceAx.YLabel.String; targetAx.ZLabel.String = sourceAx.ZLabel.String; % Copy children elements like lines, patches, etc. sourceChildren = allchild(sourceAx); targetChildren = allchild(targetAx); % Ensure the number of children elements match if length(sourceChildren) ~= length(targetChildren) warning('Number of elements in source and target axes differ. Styling may not be applied completely.'); end % Copy properties of children (like lines, patches, etc.), except colors and legends for i = 1:min(length(sourceChildren), length(targetChildren)) copyObjectProperties(sourceChildren(i), targetChildren(i)); end end function copyObjectProperties(sourceObj, targetObj) % List of common properties to copy for plot elements (lines, patches, etc.) propsToCopy = {'LineStyle', 'LineWidth', 'Marker', 'MarkerSize', ... 'MarkerEdgeColor', 'MarkerFaceColor', 'DisplayName'}; % Copy properties from source to target, excluding colors for i = 1:length(propsToCopy) try if ~contains(propsToCopy{i}, 'Color') % Skip color properties targetObj.(propsToCopy{i}) = sourceObj.(propsToCopy{i}); end catch % Skip property if it doesn't exist or can't be copied end end end