Automatically add prefix to loaded sheetname, and output,
27 views (last 30 days)
Show older comments
Hello, I have a sheetnames 'Malecontrol.xlsx' that has been reorganized to a new matrix called 'reshaped'. I want to save this new matrix but add a prefix to the original sheetnames, so it will be saved and output as 'reshaped_Malecontrol.xlsx'.
So each time I reorganize a new sheet, I don't have to change the output name. the output name can be automatically deteced.
clear all
close all
global mu
SPACE_UNITS = 'µm';
TIME_UNITS = 'min';
% Need to update names of data file, frame (f) and time interval
%% If loading in individual sheets
sheets = sheetnames('Malecontrol.xlsx');
f = 97;%update based on frame number
for i=1:size(sheets)
xy=readmatrix('Malecontrol.xlsx', 'Sheet',sheets(i), 'Range','A1:B97');
B=xy(~isnan(xy)); %takes out a defect
if size(B, 1)==f*2 % f*2
if i==1
x1=xy(:,1);
y1=xy(:,2);
else
x1=[x1; xy(:,1)];
y1=[y1; xy(:,2)];
end
end
end
VarName1=x1;
VarName2=y1;
% reshape x and y input
x=reshape(VarName1, f, []);
y=reshape(VarName2, f, []);
n = 97; % Number of repeated elements for each value
max_i = i; % Maximum value of i
cellID = repelem((1:max_i)', n, 1);
time_sequence = (0:15:1440)';
timeframe = repmat(time_sequence, i, 1);
reshaped = [cellID timeframe x1 y1];
%%
writematrix(reshaped, 'reshapedMaleControl.xlsx');
0 Comments
Answers (1)
Image Analyst
on 10 Sep 2024 at 3:48
You have a new workbook with the new name 'reshapedMaleControl.xlsx'. If your original workbook had multiple sheets, it looks like your new output workbook will have only one sheet with all the input sheets appended to each other. It doesn't look like you're "reorganizing" anything, just appending them all. Not sure what you're after. You already gave the new workbook name. Do you want multiple sheets in your output workbook? Or do you want the single sheet with the new workbook name?
Do you want the input name to be a variable and create the output name from it, like
inputBaseFileName = 'Malecontrol.xlsx';
inputFullFileName = fullfile(pwd, inputBaseFileName);
fprintf('Reading input workbook : "%s"\n', inputFullFileName);
sheets = sheetnames('Malecontrol.xlsx');
% code snipped
% Now create output workbook name
outputBaseFileName = sprintf('reshaped%s.xlsx', inputBaseFileName);
outputFillFileName = fullfile(pwd, outputBaseFileName);
fprintf('Creating output workbook : "%s"\n', outputFillFileName);
writematrix(reshaped, outputFillFileName);
0 Comments
See Also
Categories
Find more on Audio and Video Data in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!