Labfans是一个针对大学生、工程师和科研工作者的技术社区。 | 论坛首页 | 联系我们(Contact Us) |
![]() |
|
![]() |
#1 |
高级会员
注册日期: 2019-11-21
帖子: 3,006
声望力: 66 ![]() |
![]()
我希望从目录中读取文件,并对每个文件进行迭代操作。此操作不需要更改文件。
我知道我应该为此使用for循环。到目前为止,我已经尝试过: FILES = ls('path\to\folder'); for i = 1:size(FILES, 1); STRU = pdbread(FILES{i}); end 这里返回的错误向我(一个新手)建议,使用ls()列出目录不会将内容分配给数据结构。 其次,我尝试创建一个文件,该文件的每一行均包含文件的路径,例如, C:\Documents and Settings\My Documents\MATLAB\asd.pdb C:\Documents and Settings\My Documents\MATLAB\asd.pdb 然后,我使用以下代码读取该文件: fid = fopen('paths_to_files.txt'); FILES = textscan(fid, '%s'); FILES = FILES{1}; fclose(fid); 此代码读取文件,但在路径中存在空格的地方创建换行符,即 'C:\Documents' 'and' 'Setting\My' 'Documents\MATLAB\asd.pdb' 最终,我打算使用for循环 for i = 1:size(FILES, 1) PDB = pdbread(char(FILES{i})); 读取每个文件,但pdbread()引发错误,表明文件格式不正确或不存在。 这是由于在读取路径文件时路径的换行符分隔吗? 任何帮助或建议,不胜感激。 谢谢,S :-) 回答: 首先获取符合您条件的所有文件的列表: (在这种情况下, C:\ My Documents \ MATLAB中的 pdb文件) matfiles = dir(fullfile('C:', 'My Documents', 'MATLAB', '*.pdb')) 然后读取文件,如下所示: (这里i可以从1到文件数不等) data = load(matfiles(i).name) 重复此操作,直到已读取所有文件。 如果可以重命名文件, 则更简单的选择如下: 首先保存需求。文件为1.pdb,2.pdb,3.pdb等... 然后在Matlab中迭代读取它们的代码如下: for i = 1:n str = strcat('C:\My Documents\MATLAB', int2str(i),'.pdb'); data = load(matfiles(i).name); % use our logic here % before proceeding to the next file end 更多&回答... |
![]() |
![]() |