Bugfixes - all analysis routines runs now on multi-parameter scans as well.
This commit is contained in:
parent
228a35d22e
commit
717f2c84e9
@ -26,7 +26,6 @@ function results = conductSpectralAnalysis(od_imgs, scan_parameter_values, optio
|
||||
% theta_min, theta_max - angular range for radial spectrum integration
|
||||
% N_radial_bins - number of radial bins for S(k)
|
||||
% Radial_WindowSize - window size for smoothing radial spectrum
|
||||
% scan_parameter - string, type of scan parameter (used in plot text)
|
||||
% font - font name for plots
|
||||
%
|
||||
% Outputs:
|
||||
@ -55,7 +54,6 @@ function results = conductSpectralAnalysis(od_imgs, scan_parameter_values, optio
|
||||
skipLivePlot = options.skipLivePlot;
|
||||
skipSaveFigures = options.skipSaveFigures;
|
||||
saveDirectory = options.saveDirectory;
|
||||
scan_parameter = options.scan_parameter;
|
||||
font = options.font;
|
||||
|
||||
%% ===== Initialization =====
|
||||
@ -178,8 +176,14 @@ function results = conductSpectralAnalysis(od_imgs, scan_parameter_values, optio
|
||||
title('OD Image', 'FontSize', 16, 'FontWeight', 'bold', 'Interpreter', 'tex', 'FontName', font);
|
||||
|
||||
% Annotate scan parameter
|
||||
% --- Extract parameter row for this shot ---
|
||||
param_row = scan_parameter_values(k,:);
|
||||
% Extract parameter row for this shot
|
||||
if iscell(scan_parameter_values)
|
||||
% Multi-parameter scan stored as cell array of row vectors
|
||||
param_row = scan_parameter_values{k};
|
||||
else
|
||||
% Numeric vector / matrix
|
||||
param_row = scan_parameter_values(k,:);
|
||||
end
|
||||
|
||||
% --- Ensure units list is long enough ---
|
||||
if numel(unitList) < numel(param_row)
|
||||
@ -189,7 +193,7 @@ function results = conductSpectralAnalysis(od_imgs, scan_parameter_values, optio
|
||||
% --- Place one text object per parameter ---
|
||||
xPos = 0.975; % normalized x-position (right-aligned)
|
||||
yPos = 0.975; % starting y-position (top)
|
||||
yStep = 0.05; % vertical spacing between multiple parameters
|
||||
yStep = 0.075; % vertical spacing between multiple parameters
|
||||
|
||||
for j = 1:numel(param_row)
|
||||
[unitSuffix, txtInterpreter] = getUnitInfo(unitList{j});
|
||||
|
@ -9,10 +9,21 @@ function results = extractAutocorrelation(theta_values, angular_spectral_distrib
|
||||
delta_nkr_all(k, :) = angular_spectral_distribution{k};
|
||||
end
|
||||
|
||||
% ===== Group images by scan parameter values =====
|
||||
[unique_scan_parameter_values, ~, idx] = unique(scan_parameter_values);
|
||||
N_params = length(unique_scan_parameter_values);
|
||||
|
||||
% ===== Determine unique scan parameter values =====
|
||||
if isnumeric(scan_parameter_values) && isvector(scan_parameter_values)
|
||||
% --- Single parameter case (numeric vector) ---
|
||||
[unique_scan_parameter_values, ~, idx] = unique(scan_parameter_values(:), 'stable');
|
||||
N_params = numel(scan_parameter_values);
|
||||
|
||||
elseif iscell(scan_parameter_values)
|
||||
% --- Multi-parameter case (cell array of row vectors) ---
|
||||
params = cell2mat(scan_parameter_values); % convert to numeric matrix
|
||||
[unique_scan_parameter_values, ~, idx] = unique(params, 'rows', 'stable');
|
||||
N_params = numel(scan_parameter_values);
|
||||
else
|
||||
error('Unsupported format for raw scan parameter values.');
|
||||
end
|
||||
|
||||
% ===== Preallocate outputs =====
|
||||
g2_curves = cell(1, N_params); % each cell: [N_reps × N_angular_bins]
|
||||
g2_mean = zeros(N_params, N_angular_bins);
|
||||
|
@ -21,9 +21,20 @@ function results = extractCustomCorrelation(angular_spectral_distribution, scan_
|
||||
delta_nkr_all(k, :) = angular_spectral_distribution{k};
|
||||
end
|
||||
|
||||
% ===== Group images by scan parameter values =====
|
||||
[unique_scan_parameter_values, ~, idx] = unique(scan_parameter_values);
|
||||
N_params = length(unique_scan_parameter_values);
|
||||
% ===== Determine unique scan parameter values =====
|
||||
if isnumeric(scan_parameter_values) && isvector(scan_parameter_values)
|
||||
% --- Single parameter case (numeric vector) ---
|
||||
[~, ~, idx] = unique(scan_parameter_values(:), 'stable');
|
||||
N_params = numel(scan_parameter_values);
|
||||
|
||||
elseif iscell(scan_parameter_values)
|
||||
% --- Multi-parameter case (cell array of row vectors) ---
|
||||
params = cell2mat(scan_parameter_values); % convert to numeric matrix
|
||||
[~, ~, idx] = unique(params, 'rows', 'stable');
|
||||
N_params = numel(scan_parameter_values);
|
||||
else
|
||||
error('Unsupported format for raw scan parameter values.');
|
||||
end
|
||||
|
||||
% ===== Angular settings =====
|
||||
angle_range = 180;
|
||||
|
@ -39,7 +39,7 @@ function [results, scan_parameter_values, scan_reference_values] = performAnalys
|
||||
options.skipFullODImagesFolderUse (1,1) logical
|
||||
options.showProgressBar (1,1) logical
|
||||
options.measurementName (1,:) char
|
||||
options.scanParameterUnits (1,:) char
|
||||
options.scanParameterUnits {mustBeText} = ''
|
||||
options.selectedPath (1,:) char
|
||||
options.folderPath (1,:) char
|
||||
options.baseDataFolder (1,:) char
|
||||
|
@ -71,7 +71,7 @@ function runInteractiveODImageViewer(od_imgs, scan_parameter_values, file_list,
|
||||
hFig.Name = sprintf('Shot %d | %s', idx, shortName);
|
||||
|
||||
%% --- Generalized unit handling ---
|
||||
% Extract parameter row for this shot
|
||||
% Extract parameter row for this shot
|
||||
if iscell(scan_parameter_values)
|
||||
% Multi-parameter scan stored as cell array of row vectors
|
||||
param_row = scan_parameter_values{idx};
|
||||
|
@ -56,7 +56,7 @@ options.skipFullODImagesFolderUse = false;
|
||||
options.skipSaveData = false;
|
||||
options.skipSaveFigures = true;
|
||||
options.skipSaveProcessedOD = true;
|
||||
options.skipLivePlot = true;
|
||||
options.skipLivePlot = false;
|
||||
options.showProgressBar = true;
|
||||
|
||||
% Extras
|
||||
|
Loading…
Reference in New Issue
Block a user