How to load data from other directory?
257 ビュー (過去 30 日間)
古いコメントを表示
I want to load data from other director, but I want to set relative path instead of absolute. So how to step back from current directory? /..
0 件のコメント
回答 (5 件)
sarwat firoz
2020 年 12 月 14 日
Case 1: If your file is in the same folder, as the file you are using to load the data.
load fileName;
Case 2: If your file is in a folder INSIDE your directory,
load folderName/fileName;
Case 3: If your file is one step OUTSIDE your directory,
load ../fileName;
Case 4: If your file is n step OUTSIDE your directory,
load ../../../../ ... ... ... ../../fileName;
% Please make as many as ../ as much as up you want to go in folder structure.
% Kindly ignore ellipsis.
Case 5: If you wanna go up 2 folders and from there you wanna enter a separate folder structure,
load ../../folderStructure/fileName;
% Please use it the way you want.
P.S. Windows users can use either backward slash or Linux.
References:
Stephen23
2015 年 11 月 26 日
編集済み: Walter Roberson
2021 年 2 月 5 日
This is explained quite well in the documentation:
Under the title "Absolute and Relative Path Names" there is the following information:
Some MATLAB functions also support relative path names. Unless otherwise noted, the path name is relative to the current folder. For example:
- myfile.m refers to the myfile.m file in the current folder.
- ./myfolder refers to the myfolder folder in the current folder.
- ../myfolder/myfile.m refers to the myfile.m file in the myfolder folder, where myfolder is at same level as the current folder. Each repetition of ../ at the beginning of the path moves up an additional folder level.
2 件のコメント
Pen-Li (Ben) Yu
2021 年 2 月 5 日
To refer to the myfolder folder in the current folder, a forward slash shall not be employed:
- myfolder refers to the myfolder folder in the current folder.
Walter Roberson
2021 年 2 月 5 日
Stephen got tripped up by conversion to bullet form.
Using ./myfolder (with leading period) is a valid way to refer to myfolder within the current folder. It has some advantages in that using ./myfolder tells MATLAB not to search for myfolder along the MATLAB path. For example
exist('./myfolder', 'dir') %is there one HERE ??
exist('myfolder', 'dir') %is there one somewhere on the path ?
Titus Edelhofer
2015 年 11 月 26 日
編集済み: Titus Edelhofer
2015 年 11 月 26 日
Hi,
you simply need to remove the / at the beginning:
dir ..\temp
dir ..\..\anotherFolder\anotherSubfolder
Note: replace "\" of course with "/" on Linux or OSX
Or use the generic functions:
% go to folders up the hierarchy:
upUpFolder = fileparts(fileparts(pwd));
% go into another folder
folder = fullfile(upUpFolder, 'subFolder');
% do whatever you like
dir(folder)
Titus
Thorsten
2015 年 11 月 26 日
編集済み: Thorsten
2015 年 11 月 26 日
Use '..' to refer to the folder that contains the current folder. To load ../folderName1/folderName1/filename.ext robustly on different OSs, use:
load(fullfile('..', 'folderName1', 'folderName2', 'filename.ext'))
you can add as much folderNames as you need.
1 件のコメント
Suhas gowda
2023 年 5 月 6 日
This works well for me
[file,path] = uigetfile('*.mat'); % opens file selection dialog box. You may choose data from different folder
A=importdata(strcat(path,file)); % data will be imported from the specified path
1 件のコメント
Walter Roberson
2023 年 5 月 6 日
The path returned by uigetfile does not reliably end in a directory separator. Using strcat(path, filename) will sometimes fail. We recommend that you use fullfile(path, filename) which will ensure that correct separators are used.
参考
カテゴリ
Help Center および File Exchange で File Operations についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!