Full File Path Quotation Marks (Double vs Single)
19 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
Peter Cook
el 8 de Jun. de 2017
Comentada: Walter Roberson
el 9 de Jun. de 2017
A small thing that I often work around is changing file path names enclosed in double quotes to single quotes to load them into MATLAB.
In Windows I like to get a full file path (for some file that is not in my current MATLAB directory, or on PATH) with right-click + Copy As Path, which dumps a string like this on the clipboard: "C:\Users\Peter\Desktop\Pinnacle\Folder1\Folder2\Folder3\allMinima645.mat" which I need to change to this form to use the load function in MATLAB: 'C:\Users\Peter\Desktop\Pinnacle\Folder1\Folder2\Folder3\allMinima645.mat'
In python (which has its own preferred directory/path format) I can load the same using the "r" flag to tell it that I'm working with regular text formatting:
import scipy.io as sio
sio.loadmat(r"C:\Users\Peter\Desktop\Folder1\Folder2\Folder3\allMinima645.mat")
which I find slightly less cumbersome than this:
load(regexprep('"C:\Users\Peter\Desktop\Folder1\Folder2\Folder3\allMinima645.mat"','"',''))
Is there a MATLAB equivalent of pythons "r" flag (or another way to work with this)?
3 comentarios
Walter Roberson
el 9 de Jun. de 2017
R2016b added support for string objects -- character strings that can be referenced as single entities instead of having to use character vectors. string objects are displayed with double-quotes. String objects could be created from character vectors, but in R2016b there was no direct way to create a string object with specific content.
R2017a added allowing double-quotes on input to create string objects. So for example,
load("C:\Users\Peter\Desktop\Folder1\Folder2\Folder3\allMinima645.mat")
is valid in R2017a but not in R2016b.
Respuesta aceptada
Jan
el 9 de Jun. de 2017
You could create your own function to remove the double quotes.
function S = Unquoted(S)
if length(S) >= 2
if S(1) == '"'
S(1) = [];
end
if S(end) = '"'
S(end) = [];
end
end
2 comentarios
Walter Roberson
el 9 de Jun. de 2017
" cannot appear inside a file name https://msdn.microsoft.com/en-us/library/windows/desktop/aa365247(v=vs.85).aspx so you could simplify this to
Unquoted = @(S) S(S ~= '"')
Más respuestas (0)
Ver también
Categorías
Más información sobre Call Python from MATLAB en Help Center y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!