How to remove one single quote at the beginning of a string?
11 views (last 30 days)
Show older comments
So we're taking a string (which is the name of a file) and removing the .csv at the end of it to replace it by '.mat'. To do so, we simply concatenate the beginning of the first string to the '.mat'. The final result is the name of the file in a .mat format but with a simple problem: there is still a single quote at the beginning of it, and not at the end (and there shouldn't be any for the file to load properly). Example: '2021_06_24__09_54_01_381.mat
I want to know how to remove my single quote at the beginning of the string so I get 2021_06_24__09_54_01_381.mat
Maybe the solution requires a different approach entirely. Thank you so much in advance.
Here is my code (the meta variable contains all the file names I need to extract):
filename3 = strsplit(string(meta{i,1}),'.')
filename4 = strcat(filename3(1), '.mat');
0 Comments
Answers (1)
dpb
on 5 Aug 2022
Edited: dpb
on 5 Aug 2022
The MATLAB function to retrieve the extension and filename is fileparts and to rebuild a new one is fullfile
But, in this case you can shortcut the operation by
filenames=strrep(meta,'csv','mat');
which will leave you with the original cellstr() array -- if you really want a string array, wrap it around the above.
As for the original Q? itself about the extra single quote, that must be in the initial data, there's nothing in the above code that would introduce such an artifact. So, I'd recomend going back and figuring out where it comes from and fix the problem there.
If there's some external part of the process that is doing it and you can't for some reason fix it, then
filenames=strrep(filenames,"'",'');
will fix up the present problem, but it would still be better to fix it before/where it happens instead.
The introduction of the string() class, while in a lot of ways redundant functionality of the cellstr() with not all that much advantage has the side benefit of being able to write the above to wrap the single quote inside a string instead of having to double-up the ticks to escape them in char() strings that gets to be very difficult to get right/read.
See Also
Categories
Find more on Characters and Strings in Help Center and File Exchange
Products
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!