Latest complete update to scripts to save data and figures.

This commit is contained in:
Karthik 2025-08-23 19:53:58 +02:00
parent db298413d1
commit ae9af32eda
10 changed files with 164 additions and 57 deletions

View File

@ -73,7 +73,7 @@ function results = conductSpectralAnalysis(od_imgs, scan_parameter_values, optio
% Prepare folder to save figures % Prepare folder to save figures
if ~skipSaveFigures if ~skipSaveFigures
saveFolder = fullfile(saveDirectory, "Results", "SpectralAnalysisSavedFigures"); saveFolder = fullfile(saveDirectory, 'Results', 'SavedFigures', 'SpectralAnalysis');
if ~exist(saveFolder, 'dir') if ~exist(saveFolder, 'dir')
mkdir(saveFolder); mkdir(saveFolder);
end end

View File

@ -1,4 +1,4 @@
function results = performAnalysis(options) function [results, scan_parameter_values] = performAnalysis(options)
arguments arguments
options.scan_parameter (1,:) char options.scan_parameter (1,:) char
options.scan_reference_values (1,:) double options.scan_reference_values (1,:) double

View File

@ -46,16 +46,18 @@ function results_all = batchAnalyze(dataSources, options)
args = [fieldnames(options), struct2cell(options)]'; args = [fieldnames(options), struct2cell(options)]';
args = args(:)'; args = args(:)';
% Perform analysis % Perform analysis (now returns 2 outputs)
analysisResults = Analyzer.performAnalysis(args{:}); [analysisResults, scan_parameter_values] = Analyzer.performAnalysis(args{:});
% Store flat struct with metadata + results % Store flat struct with metadata + results + options
result = struct(); result = struct();
result.sequence = ds.sequence; result.sequence = ds.sequence;
result.date = ds.date; result.date = ds.date;
result.run = runID; result.run = runID;
result.path = folderPath; result.path = folderPath;
result.options = options;
result.results = analysisResults; result.results = analysisResults;
result.scan_parameter_values = scan_parameter_values;
% Save each dataset as its own MAT file % Save each dataset as its own MAT file
if ~isfield(options, 'skipSaveData') || ~options.skipSaveData if ~isfield(options, 'skipSaveData') || ~options.skipSaveData
@ -73,10 +75,11 @@ function results_all = batchAnalyze(dataSources, options)
end end
end end
%% ---- Local function for saving results ---- %% ---- Local function for saving results ----
function saveResultStruct(result, saveDirectory) function saveResultStruct(result, saveDirectory)
% Define results folder % Define results folder
resultsFolder = fullfile(saveDirectory, "Results", "AnalysisSavedData"); resultsFolder = fullfile(saveDirectory, "Results", "SavedData");
if ~exist(resultsFolder, 'dir') if ~exist(resultsFolder, 'dir')
mkdir(resultsFolder); mkdir(resultsFolder);
end end

View File

@ -1,6 +1,31 @@
idx = 1; % --- User chooses which dataset to load ---
compiled_results = results_all{idx}.results; datasetIdx = 1; % <-- change this to 1, 2, 3, ...
options.skipSaveFigures = false; datasetName = sprintf('Dataset_%d', datasetIdx);
% Detect the folder where this script is located and set that as the Base Directory
thisScriptPath = mfilename('fullpath');
[thisScriptDir, ~, ~] = fileparts(thisScriptPath);
baseDir = thisScriptDir; % override if needed
% Build path to dataset file
dataFile = fullfile(baseDir, "Results", "SavedData", datasetName + ".mat");
data = load(dataFile);
% Access dataset struct dynamically
datasetStruct = data.(datasetName);
compiled_results = datasetStruct.results;
scan_parameter_values = datasetStruct.scan_parameter_values;
% Load the original options used during analysis
options = datasetStruct.options; % exact options used for this dataset
options.font = 'Bahnscrift'; % override if needed
options.skipSaveFigures = false; % override if needed
%% ------------------ Create dataset-specific figure folder ------------------
figSaveDir = fullfile(baseDir,'Results', 'SavedFigures', datasetName);
if ~exist(figSaveDir, 'dir')
mkdir(figSaveDir);
end
%% ------------------ 1. Mean ± Std Plots ------------------ %% ------------------ 1. Mean ± Std Plots ------------------
% Plot Radial Spectral Contrast % Plot Radial Spectral Contrast
@ -11,7 +36,7 @@ Plotter.plotMeanWithSE(scan_parameter_values, compiled_results.spectral_analysis
'FigNum', 1, ... 'FigNum', 1, ...
'FontName', options.font, ... 'FontName', options.font, ...
'SaveFileName', 'RadialSpectralContrast.fig', ... 'SaveFileName', 'RadialSpectralContrast.fig', ...
'SaveDirectory', [options.saveDirectory '/Results'], ... 'SaveDirectory', figSaveDir, ... % save figures inside dataset-specific folder
'SkipSaveFigures', options.skipSaveFigures); 'SkipSaveFigures', options.skipSaveFigures);
% Plot Angular Spectral Weight % Plot Angular Spectral Weight
@ -22,7 +47,7 @@ Plotter.plotMeanWithSE(scan_parameter_values, compiled_results.spectral_analysis
'FigNum', 2, ... 'FigNum', 2, ...
'FontName', options.font, ... 'FontName', options.font, ...
'SaveFileName', 'AngularSpectralWeight.fig', ... 'SaveFileName', 'AngularSpectralWeight.fig', ...
'SaveDirectory', [options.saveDirectory '/Results'], ... 'SaveDirectory', figSaveDir, ...
'SkipSaveFigures', options.skipSaveFigures); 'SkipSaveFigures', options.skipSaveFigures);
% Plot Peak Offset Angular Correlation % Plot Peak Offset Angular Correlation
@ -34,7 +59,7 @@ Plotter.plotMeanWithSE(options.scan_reference_values, compiled_results.custom_g_
'YLim', [0 1], ... 'YLim', [0 1], ...
'FontName', options.font, ... 'FontName', options.font, ...
'SaveFileName', 'PeakOffsetAngularCorrelation.fig', ... 'SaveFileName', 'PeakOffsetAngularCorrelation.fig', ...
'SaveDirectory', [options.saveDirectory '/Results'], ... 'SaveDirectory', figSaveDir, ...
'SkipSaveFigures', options.skipSaveFigures); 'SkipSaveFigures', options.skipSaveFigures);
%% ------------------ 2. g²(θ) across transition ------------------ %% ------------------ 2. g²(θ) across transition ------------------
@ -50,7 +75,7 @@ Plotter.plotG2(compiled_results.full_g2_results.g2_all, ...
'FontName', options.font, ... 'FontName', options.font, ...
'SkipSaveFigures', options.skipSaveFigures, ... 'SkipSaveFigures', options.skipSaveFigures, ...
'SaveFileName', 'G2ThetaAcrossTransition.fig', ... 'SaveFileName', 'G2ThetaAcrossTransition.fig', ...
'SaveDirectory', [options.saveDirectory '/Results'], ... 'SaveDirectory', figSaveDir, ...
'Colormap', @Colormaps.coolwarm); 'Colormap', @Colormaps.coolwarm);
%% ------------------ 3. PDF of max g² across transition ------------------ %% ------------------ 3. PDF of max g² across transition ------------------
@ -62,7 +87,7 @@ Plotter.plotPDF(compiled_results.custom_g_results.max_g2_all_per_scan_parameter_
'FontName', options.font, ... 'FontName', options.font, ...
'SkipSaveFigures', options.skipSaveFigures, ... 'SkipSaveFigures', options.skipSaveFigures, ...
'SaveFileName', 'PDF_MaxG2AcrossTransition.fig', ... 'SaveFileName', 'PDF_MaxG2AcrossTransition.fig', ...
'SaveDirectory', [options.saveDirectory '/Results'], ... 'SaveDirectory', figSaveDir, ...
'NumPoints', 200, ... 'NumPoints', 200, ...
'DataRange', [0 1.5], ... 'DataRange', [0 1.5], ...
'Colormap', @Colormaps.coolwarm, ... 'Colormap', @Colormaps.coolwarm, ...
@ -80,7 +105,7 @@ Plotter.plotCumulants(options.scan_reference_values, ...
'LineWidth', 1.5, ... 'LineWidth', 1.5, ...
'SkipSaveFigures', options.skipSaveFigures, ... 'SkipSaveFigures', options.skipSaveFigures, ...
'SaveFileName', 'CumulantOfPeakOffsetAngularCorrelation.fig', ... 'SaveFileName', 'CumulantOfPeakOffsetAngularCorrelation.fig', ...
'SaveDirectory', [options.saveDirectory '/Results']); 'SaveDirectory', figSaveDir);
%{ %{
%% ------------------ 6. Average of Spectra Plots ------------------ %% ------------------ 6. Average of Spectra Plots ------------------
@ -92,7 +117,7 @@ Plotter.plotAverageSpectra(scan_parameter_values, ...
'ColormapPS', Colormaps.coolwarm(), ... 'ColormapPS', Colormaps.coolwarm(), ...
'Font', 'Bahnschrift', ... 'Font', 'Bahnschrift', ...
'SaveFileName', 'avgSpectra.fig', ... 'SaveFileName', 'avgSpectra.fig', ...
'SaveDirectory', [options.saveDirectory '/Results'], ... 'SaveDirectory', figSaveDir, ...
'SkipSaveFigures', options.skipSaveFigures); 'SkipSaveFigures', options.skipSaveFigures);
%% ------------------ 7. Compare quantities ------------------ %% ------------------ 7. Compare quantities ------------------
@ -132,7 +157,7 @@ compareMultipleDatasets(scanValsCell, meanValsCell, stderrValsCell, ...
'XLabel', 'B (G)', ... 'XLabel', 'B (G)', ...
'YLabel', '$\mathrm{max}[g^{(2)}_{[50,70]}(\delta\theta)]$', ... 'YLabel', '$\mathrm{max}[g^{(2)}_{[50,70]}(\delta\theta)]$', ...
'SkipSaveFigures', options.skipSaveFigures, ... 'SkipSaveFigures', options.skipSaveFigures, ...
'SaveDirectory', [options.saveDirectory '/Results'], ... 'SaveDirectory', figSaveDir, ...
'SaveFileName', 'AngularCorrelation_Comparison.fig'); 'SaveFileName', 'AngularCorrelation_Comparison.fig');
%% ------------------ 8. Heatmaps ------------------ %% ------------------ 8. Heatmaps ------------------

View File

@ -1,6 +1,31 @@
idx = 1; % --- User chooses which dataset to load ---
compiled_results = results_all{idx}.results; datasetIdx = 1; % <-- change this to 1, 2, 3, ...
options.skipSaveFigures = false; datasetName = sprintf('Dataset_%d', datasetIdx);
% Detect the folder where this script is located and set that as the Base Directory
thisScriptPath = mfilename('fullpath');
[thisScriptDir, ~, ~] = fileparts(thisScriptPath);
baseDir = thisScriptDir; % override if needed
% Build path to dataset file
dataFile = fullfile(baseDir, "Results", "SavedData", datasetName + ".mat");
data = load(dataFile);
% Access dataset struct dynamically
datasetStruct = data.(datasetName);
compiled_results = datasetStruct.results;
scan_parameter_values = datasetStruct.scan_parameter_values;
% Load the original options used during analysis
options = datasetStruct.options; % exact options used for this dataset
options.font = 'Bahnscrift'; % override if needed
options.skipSaveFigures = false; % override if needed
%% ------------------ Create dataset-specific figure folder ------------------
figSaveDir = fullfile(baseDir,'Results', 'SavedFigures', datasetName);
if ~exist(figSaveDir, 'dir')
mkdir(figSaveDir);
end
%% ------------------ 1. Mean ± Std Plots ------------------ %% ------------------ 1. Mean ± Std Plots ------------------
% Plot Radial Spectral Contrast % Plot Radial Spectral Contrast
@ -11,7 +36,7 @@ Plotter.plotMeanWithSE(scan_parameter_values, compiled_results.spectral_analysis
'FigNum', 1, ... 'FigNum', 1, ...
'FontName', options.font, ... 'FontName', options.font, ...
'SaveFileName', 'RadialSpectralContrast.fig', ... 'SaveFileName', 'RadialSpectralContrast.fig', ...
'SaveDirectory', [options.saveDirectory '/Results'], ... 'SaveDirectory', figSaveDir, ... % save figures inside dataset-specific folder
'SkipSaveFigures', options.skipSaveFigures); 'SkipSaveFigures', options.skipSaveFigures);
% Plot Angular Spectral Weight % Plot Angular Spectral Weight
@ -22,7 +47,7 @@ Plotter.plotMeanWithSE(scan_parameter_values, compiled_results.spectral_analysis
'FigNum', 2, ... 'FigNum', 2, ...
'FontName', options.font, ... 'FontName', options.font, ...
'SaveFileName', 'AngularSpectralWeight.fig', ... 'SaveFileName', 'AngularSpectralWeight.fig', ...
'SaveDirectory', [options.saveDirectory '/Results'], ... 'SaveDirectory', figSaveDir, ...
'SkipSaveFigures', options.skipSaveFigures); 'SkipSaveFigures', options.skipSaveFigures);
% Plot Peak Offset Angular Correlation % Plot Peak Offset Angular Correlation
@ -34,7 +59,7 @@ Plotter.plotMeanWithSE(options.scan_reference_values, compiled_results.custom_g_
'YLim', [0 1], ... 'YLim', [0 1], ...
'FontName', options.font, ... 'FontName', options.font, ...
'SaveFileName', 'PeakOffsetAngularCorrelation.fig', ... 'SaveFileName', 'PeakOffsetAngularCorrelation.fig', ...
'SaveDirectory', [options.saveDirectory '/Results'], ... 'SaveDirectory', figSaveDir, ...
'SkipSaveFigures', options.skipSaveFigures); 'SkipSaveFigures', options.skipSaveFigures);
%% ------------------ 2. g²(θ) across transition ------------------ %% ------------------ 2. g²(θ) across transition ------------------
@ -50,7 +75,7 @@ Plotter.plotG2(compiled_results.full_g2_results.g2_all, ...
'FontName', options.font, ... 'FontName', options.font, ...
'SkipSaveFigures', options.skipSaveFigures, ... 'SkipSaveFigures', options.skipSaveFigures, ...
'SaveFileName', 'G2ThetaAcrossTransition.fig', ... 'SaveFileName', 'G2ThetaAcrossTransition.fig', ...
'SaveDirectory', [options.saveDirectory '/Results'], ... 'SaveDirectory', figSaveDir, ...
'Colormap', @Colormaps.coolwarm); 'Colormap', @Colormaps.coolwarm);
%% ------------------ 3. PDF of max g² across transition ------------------ %% ------------------ 3. PDF of max g² across transition ------------------
@ -62,7 +87,7 @@ Plotter.plotPDF(compiled_results.custom_g_results.max_g2_all_per_scan_parameter_
'FontName', options.font, ... 'FontName', options.font, ...
'SkipSaveFigures', options.skipSaveFigures, ... 'SkipSaveFigures', options.skipSaveFigures, ...
'SaveFileName', 'PDF_MaxG2AcrossTransition.fig', ... 'SaveFileName', 'PDF_MaxG2AcrossTransition.fig', ...
'SaveDirectory', [options.saveDirectory '/Results'], ... 'SaveDirectory', figSaveDir, ...
'NumPoints', 200, ... 'NumPoints', 200, ...
'DataRange', [0 1.5], ... 'DataRange', [0 1.5], ...
'Colormap', @Colormaps.coolwarm, ... 'Colormap', @Colormaps.coolwarm, ...
@ -80,7 +105,7 @@ Plotter.plotCumulants(options.scan_reference_values, ...
'LineWidth', 1.5, ... 'LineWidth', 1.5, ...
'SkipSaveFigures', options.skipSaveFigures, ... 'SkipSaveFigures', options.skipSaveFigures, ...
'SaveFileName', 'CumulantOfPeakOffsetAngularCorrelation.fig', ... 'SaveFileName', 'CumulantOfPeakOffsetAngularCorrelation.fig', ...
'SaveDirectory', [options.saveDirectory '/Results']); 'SaveDirectory', figSaveDir);
%{ %{
%% ------------------ 6. Average of Spectra Plots ------------------ %% ------------------ 6. Average of Spectra Plots ------------------
@ -92,7 +117,7 @@ Plotter.plotAverageSpectra(scan_parameter_values, ...
'ColormapPS', Colormaps.coolwarm(), ... 'ColormapPS', Colormaps.coolwarm(), ...
'Font', 'Bahnschrift', ... 'Font', 'Bahnschrift', ...
'SaveFileName', 'avgSpectra.fig', ... 'SaveFileName', 'avgSpectra.fig', ...
'SaveDirectory', [options.saveDirectory '/Results'], ... 'SaveDirectory', figSaveDir, ...
'SkipSaveFigures', options.skipSaveFigures); 'SkipSaveFigures', options.skipSaveFigures);
%% ------------------ 7. Compare quantities ------------------ %% ------------------ 7. Compare quantities ------------------
@ -132,7 +157,7 @@ compareMultipleDatasets(scanValsCell, meanValsCell, stderrValsCell, ...
'XLabel', 'B (G)', ... 'XLabel', 'B (G)', ...
'YLabel', '$\mathrm{max}[g^{(2)}_{[50,70]}(\delta\theta)]$', ... 'YLabel', '$\mathrm{max}[g^{(2)}_{[50,70]}(\delta\theta)]$', ...
'SkipSaveFigures', options.skipSaveFigures, ... 'SkipSaveFigures', options.skipSaveFigures, ...
'SaveDirectory', [options.saveDirectory '/Results'], ... 'SaveDirectory', figSaveDir, ...
'SaveFileName', 'AngularCorrelation_Comparison.fig'); 'SaveFileName', 'AngularCorrelation_Comparison.fig');
%% ------------------ 8. Heatmaps ------------------ %% ------------------ 8. Heatmaps ------------------

View File

@ -68,6 +68,8 @@ options.skipMasking = true;
options.skipIntensityThresholding = true; options.skipIntensityThresholding = true;
options.skipBinarization = true; options.skipBinarization = true;
options.skipSaveFigures = true; options.skipSaveFigures = true;
options.skipSaveData = false;
options.skipSaveOD = true;
options.skipLivePlot = false; options.skipLivePlot = false;
options.showProgressBar = true; options.showProgressBar = true;

View File

@ -1,6 +1,31 @@
idx = 1; % --- User chooses which dataset to load ---
compiled_results = results_all{idx}.results; datasetIdx = 1; % <-- change this to 1, 2, 3, ...
options.skipSaveFigures = false; datasetName = sprintf('Dataset_%d', datasetIdx);
% Detect the folder where this script is located and set that as the Base Directory
thisScriptPath = mfilename('fullpath');
[thisScriptDir, ~, ~] = fileparts(thisScriptPath);
baseDir = thisScriptDir; % override if needed
% Build path to dataset file
dataFile = fullfile(baseDir, "Results", "SavedData", datasetName + ".mat");
data = load(dataFile);
% Access dataset struct dynamically
datasetStruct = data.(datasetName);
compiled_results = datasetStruct.results;
scan_parameter_values = datasetStruct.scan_parameter_values;
% Load the original options used during analysis
options = datasetStruct.options; % exact options used for this dataset
options.font = 'Bahnscrift'; % override if needed
options.skipSaveFigures = false; % override if needed
%% ------------------ Create dataset-specific figure folder ------------------
figSaveDir = fullfile(baseDir,'Results', 'SavedFigures', datasetName);
if ~exist(figSaveDir, 'dir')
mkdir(figSaveDir);
end
%% ------------------ 1. Mean ± Std Plots ------------------ %% ------------------ 1. Mean ± Std Plots ------------------
% Plot Radial Spectral Contrast % Plot Radial Spectral Contrast
@ -11,7 +36,7 @@ Plotter.plotMeanWithSE(scan_parameter_values, compiled_results.spectral_analysis
'FigNum', 1, ... 'FigNum', 1, ...
'FontName', options.font, ... 'FontName', options.font, ...
'SaveFileName', 'RadialSpectralContrast.fig', ... 'SaveFileName', 'RadialSpectralContrast.fig', ...
'SaveDirectory', [options.saveDirectory '/Results'], ... 'SaveDirectory', figSaveDir, ... % save figures inside dataset-specific folder
'SkipSaveFigures', options.skipSaveFigures); 'SkipSaveFigures', options.skipSaveFigures);
% Plot Angular Spectral Weight % Plot Angular Spectral Weight
@ -22,7 +47,7 @@ Plotter.plotMeanWithSE(scan_parameter_values, compiled_results.spectral_analysis
'FigNum', 2, ... 'FigNum', 2, ...
'FontName', options.font, ... 'FontName', options.font, ...
'SaveFileName', 'AngularSpectralWeight.fig', ... 'SaveFileName', 'AngularSpectralWeight.fig', ...
'SaveDirectory', [options.saveDirectory '/Results'], ... 'SaveDirectory', figSaveDir, ...
'SkipSaveFigures', options.skipSaveFigures); 'SkipSaveFigures', options.skipSaveFigures);
% Plot Peak Offset Angular Correlation % Plot Peak Offset Angular Correlation
@ -34,7 +59,7 @@ Plotter.plotMeanWithSE(options.scan_reference_values, compiled_results.custom_g_
'YLim', [0 1], ... 'YLim', [0 1], ...
'FontName', options.font, ... 'FontName', options.font, ...
'SaveFileName', 'PeakOffsetAngularCorrelation.fig', ... 'SaveFileName', 'PeakOffsetAngularCorrelation.fig', ...
'SaveDirectory', [options.saveDirectory '/Results'], ... 'SaveDirectory', figSaveDir, ...
'SkipSaveFigures', options.skipSaveFigures); 'SkipSaveFigures', options.skipSaveFigures);
%% ------------------ 2. g²(θ) across transition ------------------ %% ------------------ 2. g²(θ) across transition ------------------
@ -50,7 +75,7 @@ Plotter.plotG2(compiled_results.full_g2_results.g2_all, ...
'FontName', options.font, ... 'FontName', options.font, ...
'SkipSaveFigures', options.skipSaveFigures, ... 'SkipSaveFigures', options.skipSaveFigures, ...
'SaveFileName', 'G2ThetaAcrossTransition.fig', ... 'SaveFileName', 'G2ThetaAcrossTransition.fig', ...
'SaveDirectory', [options.saveDirectory '/Results'], ... 'SaveDirectory', figSaveDir, ...
'Colormap', @Colormaps.coolwarm); 'Colormap', @Colormaps.coolwarm);
%% ------------------ 3. PDF of max g² across transition ------------------ %% ------------------ 3. PDF of max g² across transition ------------------
@ -62,7 +87,7 @@ Plotter.plotPDF(compiled_results.custom_g_results.max_g2_all_per_scan_parameter_
'FontName', options.font, ... 'FontName', options.font, ...
'SkipSaveFigures', options.skipSaveFigures, ... 'SkipSaveFigures', options.skipSaveFigures, ...
'SaveFileName', 'PDF_MaxG2AcrossTransition.fig', ... 'SaveFileName', 'PDF_MaxG2AcrossTransition.fig', ...
'SaveDirectory', [options.saveDirectory '/Results'], ... 'SaveDirectory', figSaveDir, ...
'NumPoints', 200, ... 'NumPoints', 200, ...
'DataRange', [0 1.5], ... 'DataRange', [0 1.5], ...
'Colormap', @Colormaps.coolwarm, ... 'Colormap', @Colormaps.coolwarm, ...
@ -80,7 +105,7 @@ Plotter.plotCumulants(options.scan_reference_values, ...
'LineWidth', 1.5, ... 'LineWidth', 1.5, ...
'SkipSaveFigures', options.skipSaveFigures, ... 'SkipSaveFigures', options.skipSaveFigures, ...
'SaveFileName', 'CumulantOfPeakOffsetAngularCorrelation.fig', ... 'SaveFileName', 'CumulantOfPeakOffsetAngularCorrelation.fig', ...
'SaveDirectory', [options.saveDirectory '/Results']); 'SaveDirectory', figSaveDir);
%{ %{
%% ------------------ 6. Average of Spectra Plots ------------------ %% ------------------ 6. Average of Spectra Plots ------------------
@ -92,7 +117,7 @@ Plotter.plotAverageSpectra(scan_parameter_values, ...
'ColormapPS', Colormaps.coolwarm(), ... 'ColormapPS', Colormaps.coolwarm(), ...
'Font', 'Bahnschrift', ... 'Font', 'Bahnschrift', ...
'SaveFileName', 'avgSpectra.fig', ... 'SaveFileName', 'avgSpectra.fig', ...
'SaveDirectory', [options.saveDirectory '/Results'], ... 'SaveDirectory', figSaveDir, ...
'SkipSaveFigures', options.skipSaveFigures); 'SkipSaveFigures', options.skipSaveFigures);
%% ------------------ 7. Compare quantities ------------------ %% ------------------ 7. Compare quantities ------------------
@ -132,7 +157,7 @@ compareMultipleDatasets(scanValsCell, meanValsCell, stderrValsCell, ...
'XLabel', 'B (G)', ... 'XLabel', 'B (G)', ...
'YLabel', '$\mathrm{max}[g^{(2)}_{[50,70]}(\delta\theta)]$', ... 'YLabel', '$\mathrm{max}[g^{(2)}_{[50,70]}(\delta\theta)]$', ...
'SkipSaveFigures', options.skipSaveFigures, ... 'SkipSaveFigures', options.skipSaveFigures, ...
'SaveDirectory', [options.saveDirectory '/Results'], ... 'SaveDirectory', figSaveDir, ...
'SaveFileName', 'AngularCorrelation_Comparison.fig'); 'SaveFileName', 'AngularCorrelation_Comparison.fig');
%% ------------------ 8. Heatmaps ------------------ %% ------------------ 8. Heatmaps ------------------

View File

@ -67,8 +67,8 @@ options.skipPreprocessing = true;
options.skipMasking = true; options.skipMasking = true;
options.skipIntensityThresholding = true; options.skipIntensityThresholding = true;
options.skipBinarization = true; options.skipBinarization = true;
options.skipMovieRender = true;
options.skipSaveFigures = true; options.skipSaveFigures = true;
options.skipSaveData = false;
options.skipSaveOD = true; options.skipSaveOD = true;
options.skipLivePlot = false; options.skipLivePlot = false;
options.showProgressBar = true; options.showProgressBar = true;

View File

@ -1,6 +1,31 @@
idx = 1; % --- User chooses which dataset to load ---
compiled_results = results_all{idx}.results; datasetIdx = 1; % <-- change this to 1, 2, 3, ...
options.skipSaveFigures = false; datasetName = sprintf('Dataset_%d', datasetIdx);
% Detect the folder where this script is located and set that as the Base Directory
thisScriptPath = mfilename('fullpath');
[thisScriptDir, ~, ~] = fileparts(thisScriptPath);
baseDir = thisScriptDir; % override if needed
% Build path to dataset file
dataFile = fullfile(baseDir, "Results", "SavedData", datasetName + ".mat");
data = load(dataFile);
% Access dataset struct dynamically
datasetStruct = data.(datasetName);
compiled_results = datasetStruct.results;
scan_parameter_values = datasetStruct.scan_parameter_values;
% Load the original options used during analysis
options = datasetStruct.options; % exact options used for this dataset
options.font = 'Bahnscrift'; % override if needed
options.skipSaveFigures = false; % override if needed
%% ------------------ Create dataset-specific figure folder ------------------
figSaveDir = fullfile(baseDir,'Results', 'SavedFigures', datasetName);
if ~exist(figSaveDir, 'dir')
mkdir(figSaveDir);
end
%% ------------------ 1. Mean ± Std Plots ------------------ %% ------------------ 1. Mean ± Std Plots ------------------
% Plot Radial Spectral Contrast % Plot Radial Spectral Contrast
@ -11,7 +36,7 @@ Plotter.plotMeanWithSE(scan_parameter_values, compiled_results.spectral_analysis
'FigNum', 1, ... 'FigNum', 1, ...
'FontName', options.font, ... 'FontName', options.font, ...
'SaveFileName', 'RadialSpectralContrast.fig', ... 'SaveFileName', 'RadialSpectralContrast.fig', ...
'SaveDirectory', [options.saveDirectory '/Results'], ... 'SaveDirectory', figSaveDir, ... % save figures inside dataset-specific folder
'SkipSaveFigures', options.skipSaveFigures); 'SkipSaveFigures', options.skipSaveFigures);
% Plot Angular Spectral Weight % Plot Angular Spectral Weight
@ -22,7 +47,7 @@ Plotter.plotMeanWithSE(scan_parameter_values, compiled_results.spectral_analysis
'FigNum', 2, ... 'FigNum', 2, ...
'FontName', options.font, ... 'FontName', options.font, ...
'SaveFileName', 'AngularSpectralWeight.fig', ... 'SaveFileName', 'AngularSpectralWeight.fig', ...
'SaveDirectory', [options.saveDirectory '/Results'], ... 'SaveDirectory', figSaveDir, ...
'SkipSaveFigures', options.skipSaveFigures); 'SkipSaveFigures', options.skipSaveFigures);
% Plot Peak Offset Angular Correlation % Plot Peak Offset Angular Correlation
@ -34,7 +59,7 @@ Plotter.plotMeanWithSE(options.scan_reference_values, compiled_results.custom_g_
'YLim', [0 1], ... 'YLim', [0 1], ...
'FontName', options.font, ... 'FontName', options.font, ...
'SaveFileName', 'PeakOffsetAngularCorrelation.fig', ... 'SaveFileName', 'PeakOffsetAngularCorrelation.fig', ...
'SaveDirectory', [options.saveDirectory '/Results'], ... 'SaveDirectory', figSaveDir, ...
'SkipSaveFigures', options.skipSaveFigures); 'SkipSaveFigures', options.skipSaveFigures);
%% ------------------ 2. g²(θ) across transition ------------------ %% ------------------ 2. g²(θ) across transition ------------------
@ -50,7 +75,7 @@ Plotter.plotG2(compiled_results.full_g2_results.g2_all, ...
'FontName', options.font, ... 'FontName', options.font, ...
'SkipSaveFigures', options.skipSaveFigures, ... 'SkipSaveFigures', options.skipSaveFigures, ...
'SaveFileName', 'G2ThetaAcrossTransition.fig', ... 'SaveFileName', 'G2ThetaAcrossTransition.fig', ...
'SaveDirectory', [options.saveDirectory '/Results'], ... 'SaveDirectory', figSaveDir, ...
'Colormap', @Colormaps.coolwarm); 'Colormap', @Colormaps.coolwarm);
%% ------------------ 3. PDF of max g² across transition ------------------ %% ------------------ 3. PDF of max g² across transition ------------------
@ -62,7 +87,7 @@ Plotter.plotPDF(compiled_results.custom_g_results.max_g2_all_per_scan_parameter_
'FontName', options.font, ... 'FontName', options.font, ...
'SkipSaveFigures', options.skipSaveFigures, ... 'SkipSaveFigures', options.skipSaveFigures, ...
'SaveFileName', 'PDF_MaxG2AcrossTransition.fig', ... 'SaveFileName', 'PDF_MaxG2AcrossTransition.fig', ...
'SaveDirectory', [options.saveDirectory '/Results'], ... 'SaveDirectory', figSaveDir, ...
'NumPoints', 200, ... 'NumPoints', 200, ...
'DataRange', [0 1.5], ... 'DataRange', [0 1.5], ...
'Colormap', @Colormaps.coolwarm, ... 'Colormap', @Colormaps.coolwarm, ...
@ -80,7 +105,7 @@ Plotter.plotCumulants(options.scan_reference_values, ...
'LineWidth', 1.5, ... 'LineWidth', 1.5, ...
'SkipSaveFigures', options.skipSaveFigures, ... 'SkipSaveFigures', options.skipSaveFigures, ...
'SaveFileName', 'CumulantOfPeakOffsetAngularCorrelation.fig', ... 'SaveFileName', 'CumulantOfPeakOffsetAngularCorrelation.fig', ...
'SaveDirectory', [options.saveDirectory '/Results']); 'SaveDirectory', figSaveDir);
%{ %{
%% ------------------ 6. Average of Spectra Plots ------------------ %% ------------------ 6. Average of Spectra Plots ------------------
@ -92,7 +117,7 @@ Plotter.plotAverageSpectra(scan_parameter_values, ...
'ColormapPS', Colormaps.coolwarm(), ... 'ColormapPS', Colormaps.coolwarm(), ...
'Font', 'Bahnschrift', ... 'Font', 'Bahnschrift', ...
'SaveFileName', 'avgSpectra.fig', ... 'SaveFileName', 'avgSpectra.fig', ...
'SaveDirectory', [options.saveDirectory '/Results'], ... 'SaveDirectory', figSaveDir, ...
'SkipSaveFigures', options.skipSaveFigures); 'SkipSaveFigures', options.skipSaveFigures);
%% ------------------ 7. Compare quantities ------------------ %% ------------------ 7. Compare quantities ------------------
@ -132,7 +157,7 @@ compareMultipleDatasets(scanValsCell, meanValsCell, stderrValsCell, ...
'XLabel', 'B (G)', ... 'XLabel', 'B (G)', ...
'YLabel', '$\mathrm{max}[g^{(2)}_{[50,70]}(\delta\theta)]$', ... 'YLabel', '$\mathrm{max}[g^{(2)}_{[50,70]}(\delta\theta)]$', ...
'SkipSaveFigures', options.skipSaveFigures, ... 'SkipSaveFigures', options.skipSaveFigures, ...
'SaveDirectory', [options.saveDirectory '/Results'], ... 'SaveDirectory', figSaveDir, ...
'SaveFileName', 'AngularCorrelation_Comparison.fig'); 'SaveFileName', 'AngularCorrelation_Comparison.fig');
%% ------------------ 8. Heatmaps ------------------ %% ------------------ 8. Heatmaps ------------------

View File

@ -3,7 +3,7 @@
% Specify data location to run analysis on % Specify data location to run analysis on
dataSources = { dataSources = {
struct('sequence', 'StructuralPhaseTransition', ... struct('sequence', 'StructuralPhaseTransition', ...
'date', '2025/08/16', ... 'date', '2025/08/18', ...
'runs', [8]) % specify run numbers as a string in "" or just as a numeric value 'runs', [8]) % specify run numbers as a string in "" or just as a numeric value
}; };
@ -68,6 +68,8 @@ options.skipMasking = true;
options.skipIntensityThresholding = true; options.skipIntensityThresholding = true;
options.skipBinarization = true; options.skipBinarization = true;
options.skipSaveFigures = true; options.skipSaveFigures = true;
options.skipSaveData = false;
options.skipSaveOD = true;
options.skipLivePlot = false; options.skipLivePlot = false;
options.showProgressBar = true; options.showProgressBar = true;