Skip to content

Commit

Permalink
Add MATLAB script to convert SU locations to strings
Browse files Browse the repository at this point in the history
This script processes .mat files, checking for the 'SU' structure and converting 'location' fields to plain strings if they exist. It iterates through each file in the specified directory, handling errors, and saves the updated data.
  • Loading branch information
weiglszonja committed Dec 1, 2024
1 parent 33da2f5 commit 94f7c71
Showing 1 changed file with 50 additions and 0 deletions.
Original file line number Diff line number Diff line change
@@ -0,0 +1,50 @@
% MATLAB script to process all .mat files in a specified directory,
% checking for 'SU' structure and converting 'location' to a plain string if it exists

% Specify the path to your directory containing the .mat files
folderPath = '/Volumes/T9/Constantinople/Ephys Data/'; % Replace with your actual folder path

% Get a list of all .mat files in the directory
files = dir(fullfile(folderPath, '**', '*.mat'));
matFiles = fullfile({files.folder}, {files.name});

% Loop through each .mat file in the directory
for k = 1:length(matFiles)
matFilePath = fullfile(folderPath, matFiles(k));
matFilePath = char(matFiles{k}); % Ensure it is a character array
% Load the .mat file
try
data = load(matFilePath);
catch ME
% Handle the error
disp(['An error occurred: ', ME.message]);
continue
end

% Check if 'SU' structure exists in the loaded data
if isfield(data, 'SU')
SU = data.SU; % Get the SU structure
numUnits = length(SU);

% Iterate over each unit in the SU structure
for i = 1:numUnits
if isfield(SU{i}, 'location')
% Check and convert location if it is a cell array
if iscell(SU{i}.location) && ~isempty(SU{i}.location)
locationStr = SU{i}.location{1}; % Extract first element if it is a cell
else
locationStr = SU{i}.location;
end
SU{i}.location = locationStr;
end
end

S = data.S;
save(matFilePath, 'S', 'SU');
disp(['Processed and saved: ', matFilePath]);
% Clear variables to free up workspace
clear SU;
clear S;
clear data;
end
end

0 comments on commit 94f7c71

Please sign in to comment.