Labfans是一个针对大学生、工程师和科研工作者的技术社区。 论坛首页 | 联系我们(Contact Us)
MATLAB爱好者论坛-LabFans.com
返回   MATLAB爱好者论坛-LabFans.com > 其它 > 资料存档
资料存档 资料存档
回复
 
主题工具 显示模式
旧 2019-12-10, 20:41   #1
poster
高级会员
 
注册日期: 2019-11-21
帖子: 3,006
声望力: 66
poster 正向着好的方向发展
帖子 MATLAB-从目录中读取文件?

我希望从目录中读取文件,并对每个文件进行迭代操作。此操作不需要更改文件。

我知道我应该为此使用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

更多&回答...
poster 当前离线   回复时引用此帖
回复


发帖规则
不可以发表新主题
不可以发表回复
不可以上传附件
不可以编辑自己的帖子

启用 BB 代码
论坛禁用 表情符号
论坛启用 [IMG] 代码
论坛启用 HTML 代码



所有时间均为北京时间。现在的时间是 21:18


Powered by vBulletin
版权所有 ©2000 - 2025,Jelsoft Enterprises Ltd.