How can I save the data from my function as a new .mat file?

This is my code snippet:
[filepath, name, ext] = fileparts(filename);
newFilename = fullfile(filepath, name , '_RT.mat');
disp(newFilename)
save(newFilename, 'AudioRT', 'VisualRT', 'SOA')
This is the result:
/MATLAB Drive/CHECK/Participant/_RT.mat
Error using save
Cannot create '_RT.mat' because '/MATLAB Drive/CHECK/Participant' does not exist.
Error in CongruentRT (line 42)
save(newFilename, 'AudioRT', 'VisualRT', 'SOA')
But I expect this:
/MATLAB Drive/CHECK/Participant_RT.mat % "/" need not be there
Then, I assume my files would get saved and it won't throw this error.

 Accepted Answer

Change
newFilename = fullfile(filepath, name , '_RT.mat');
to
newFilename = fullfile(filepath, [name,'_RT.mat']);
% ^ ^

3 Comments

"/MATLAB Drive/CHECK/Participant" "/MATLAB Drive/CHECK/_RT.mat"
Error using save
Argument must be a text scalar.
Error in CongruentRT (line 43)
save(newFilename, 'AudioRT', 'VisualRT', 'SOA')
% It got split into two addresses as that became an array
Aaah, you are actually using strings. It helps when you provide this kind of important information.
Try STRCAT:
newFilename = fullfile(filepath, strcat(name,'_RT.mat'))
% ^^^^^^^ ^
Well, first line of my code snippet shows that. Thanks for your help. I have tested your solution and this works too so I will accept the answer.
Merry answering! :)
I found another solution meanwhile and it seems to work now.
newFilename = sprintf('%s/%s_RT.mat', filepath, name);

Sign in to comment.

More Answers (0)

Categories

Find more on Scripts in Help Center and File Exchange

Asked:

on 29 Apr 2023

Commented:

on 29 Apr 2023

Community Treasure Hunt

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

Start Hunting!