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

3 views (last 30 days)
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

Stephen23
Stephen23 on 29 Apr 2023
Change
newFilename = fullfile(filepath, name , '_RT.mat');
to
newFilename = fullfile(filepath, [name,'_RT.mat']);
% ^ ^
  3 Comments
Stephen23
Stephen23 on 29 Apr 2023
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'))
% ^^^^^^^ ^
Himangshu
Himangshu on 29 Apr 2023
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 Environment and Settings 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!