Dar*_*ick 13 directory matlab file
我希望从目录中读取文件,并迭代地对每个文件执行操作.此操作不需要更改文件.
我明白我应该使用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 :-)
The*_*ist 21
首先获取符合条件的所有文件的列表:( 
在本例中为C:\ My Documents\MATLAB中的pdb文件)
matfiles = dir(fullfile('C:', 'My Documents', 'MATLAB', '*.pdb'))
然后按如下方式读入文件:( 
这里i可以从1到文件数量不等)
data = load(matfiles(i).name)
重复此操作,直到您阅读完所有文件.
一个简单的替代方法,如果你可以重命名文件如下: -
首先保存reqd.文件为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