Save location not working

2 vues (au cours des 30 derniers jours)
Richard Rees
Richard Rees le 22 Fév 2020
Commenté : Richard Rees le 23 Fév 2020
Morning, I have a problem with not being able to solve the problem with "Error using save: Must be a string scalar or character vector". The save directories are being created but the save function is refusing to save to these, I think it has something to do with the dates within the subfolder directories but I do not know how to save it alteratively. Could someone have a look please?
sv_direct ={'D:\One drive\OneDrive - XUniversity\PhD\TecPlot\MATLAB_sim_var\'};
coupled_data_export = num2cell(rand(3));
save_var{i} = {'coupled_data_export'};
for i = 1:length(sv_direct)
compare_locs{i} = sprintf('%s%s_subplot_figures/%s/%s/%s', sv_direct{i},string(folder_pts(5)),string(coupled_FN(1)),currDate,string(folder_pts(6)));
% Finally, create the folder if it doesn't exist already.
if ~exist(compare_locs{i}, 'dir')
mkdir(compare_locs{i});
end
end
for i = 1:length(sv_direct)
save_locs{i} = sprintf('%sEqualised_for_TP_export/%s/%s/%s', sv_direct{i},string(coupled_FN(1)),currDate,string(folder_pts(6)));
if ~exist(save_locs{i}, 'dir')
mkdir(save_locs{i});
end
end
for i = 1:length(save_var)
save_name{i} = char(save_var{i});
for k = 1 : length(save_locs)
baseFileName = char(sprintf('%s.mat', save_name{i}));
fullMatFileName = fullfile(save_locs{k}, baseFileName);
save(fullMatFileName, save_var{i});
fprintf('Saving to: %s.\n', save_locs{k});
end
end

Réponse acceptée

Subhadeep Koley
Subhadeep Koley le 22 Fév 2020
I guess this variable save_var{i} in the 4th last line of your code is returning a cell. Whereas, the function save expects a string scalar or a character vector.
Try casting save_var{i} to char.
sv_direct ={'D:\One drive\OneDrive - XUniversity\PhD\TecPlot\MATLAB_sim_var\'};
coupled_data_export = num2cell(rand(3));
save_var{i} = {'coupled_data_export'};
for i = 1:length(sv_direct)
compare_locs{i} = sprintf('%s%s_subplot_figures/%s/%s/%s', sv_direct{i},string(folder_pts(5)),string(coupled_FN(1)),currDate,string(folder_pts(6)));
% Finally, create the folder if it doesn't exist already.
if ~exist(compare_locs{i}, 'dir')
mkdir(compare_locs{i});
end
end
for i = 1:length(sv_direct)
save_locs{i} = sprintf('%sEqualised_for_TP_export/%s/%s/%s', sv_direct{i},string(coupled_FN(1)),currDate,string(folder_pts(6)));
if ~exist(save_locs{i}, 'dir')
mkdir(save_locs{i});
end
end
for i = 1:length(save_var)
save_name{i} = char(save_var{i});
for k = 1 : length(save_locs)
baseFileName = char(sprintf('%s.mat', save_name{i}));
fullMatFileName = fullfile(save_locs{k}, baseFileName);
save(fullMatFileName, char(save_var{i}));
fprintf('Saving to: %s.\n', save_locs{k});
end
end
  1 commentaire
Richard Rees
Richard Rees le 23 Fév 2020
Works. Thanks very much

Connectez-vous pour commenter.

Plus de réponses (0)

Catégories

En savoir plus sur File Operations dans Help Center et File Exchange

Tags

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by