为什么我需要更改MATLAB路径才能读取文件?
我正在从文件夹中读取50个文件,如下所示:为什么我需要更改MATLAB路径才能读取文件?,matlab,Matlab,我正在从文件夹中读取50个文件,如下所示: list_of_files=dir(fullfile('/home/user/Desktop/MTP/schemes/o33smnpimp/data/', '*.dat')); 我的问题是直到&除非我在matlabpath中打开了与path相同的文件夹(路径窗口上方的一个),否则该命令将无法工作。这背后的原因是什么?实际上有多个方案,每次我需要运行一个特定的方案时,我必须转到该方案的数据文件夹。如何解决此问题?问题在于,您可以像以前一样使用完整路径获
list_of_files=dir(fullfile('/home/user/Desktop/MTP/schemes/o33smnpimp/data/', '*.dat'));
我的问题是直到&除非我在matlabpath中打开了与path相同的文件夹(路径窗口上方的一个),否则该命令将无法工作。这背后的原因是什么?实际上有多个方案,每次我需要运行一个特定的方案时,我必须转到该方案的数据文件夹。如何解决此问题?问题在于,您可以像以前一样使用完整路径获取文件列表,但在使用时还需要指定完整路径。例如,尝试将代码更改为:
baseDir = '/home/user/Desktop/MTP/schemes/o33smnpimp/data/'; % <--- will use this twice
list_of_files=dir(fullfile(baseDir, '*.dat'));
for ind = 1:length(list_of_files)
myFilenameFull = fullfile(baseDir, list_of_files(ind).name); % <---- must use fullfile here too!
D1 = getData(myFilenameFull, 'stuff');
end
baseDir='/home/user/Desktop/MTP/schemes/o33smnpimp/data/';% 问题是,您可以像以前一样使用完整路径获取文件列表,但在使用时还需要指定完整路径。例如,尝试将代码更改为:
baseDir = '/home/user/Desktop/MTP/schemes/o33smnpimp/data/'; % <--- will use this twice
list_of_files=dir(fullfile(baseDir, '*.dat'));
for ind = 1:length(list_of_files)
myFilenameFull = fullfile(baseDir, list_of_files(ind).name); % <---- must use fullfile here too!
D1 = getData(myFilenameFull, 'stuff');
end
baseDir='/home/user/Desktop/MTP/schemes/o33smnpimp/data/';%你说的计划是什么意思?这些是一些函数吗?您是说上面的命令不起作用,还是说当您试图运行或读取它返回的文件/函数时,您得到了一个错误?请提供任何错误消息(以云线编号显示的完整消息)和任何其他代码。“MATLAB路径中的路径”和“路径窗口”是什么意思?后者是在Home>Environment>Set Path下找到的Set Path GUI(即,pathtool
)吗?@Divakar基本上我有10种由不同方案生成的数据。现在所有这些都在不同的文件夹中,如o1exp、o1imp、o33smnpimp等。这些文件夹本身还包含数据文件夹,每个文件夹包含50个dat文件。我需要做的是在单个MATLAB文件中读取所有这些dat文件并绘制结果。如果我只想从一个文件夹中阅读,您以前的解决方案解决了我的问题。但是如果有多个文件夹,它就失败了。你说的方案是什么意思?这些是一些函数吗?您是说上面的命令不起作用,还是说当您试图运行或读取它返回的文件/函数时,您得到了一个错误?请提供任何错误消息(以云线编号显示的完整消息)和任何其他代码。“MATLAB路径中的路径”和“路径窗口”是什么意思?后者是在Home>Environment>Set Path下找到的Set Path GUI(即,pathtool
)吗?@Divakar基本上我有10种由不同方案生成的数据。现在所有这些都在不同的文件夹中,如o1exp、o1imp、o33smnpimp等。这些文件夹本身还包含数据文件夹,每个文件夹包含50个dat文件。我需要做的是在单个MATLAB文件中读取所有这些dat文件并绘制结果。如果我只想从一个文件夹中阅读,您以前的解决方案解决了我的问题。但在多个文件夹的情况下,它会失败。