在 MATLAB 中使用循环读取文件

Bal*_*loo 2 matlab

我正在读取目录中的所有文件。但是然后我想循环它并使用循环迭代器的数量加载文件,如下所示

A = dir('*.txt');
for i=1:size(A)
   text = function('Text'+i+'.txt');
end
Run Code Online (Sandbox Code Playgroud)

所以我的问题是,我找不到正确的语法来获取 i 位置的文本文件。谢谢!

seb*_*ian 5

您不能简单地使用add字符串'Text'和数字i。您必须i首先转换为字符串,然后连接三个:

text = function(['Text', num2str(i), '.txt']);
Run Code Online (Sandbox Code Playgroud)

或者,我的首选解决方案是使用sprintf

text = function(sprintf('Text%i.txt', i));
Run Code Online (Sandbox Code Playgroud)

sprintf%i将用 的整数表示形式替换字符串中的部分i

编辑:

重新阅读您的问题,您可能最好使用以下信息dir而不是构建自己的文件名:

text = function(A(i).name);
Run Code Online (Sandbox Code Playgroud)

该结构A将包含每个文件的信息 - 包括其名称。这将使您的代码更加稳定。

  • 好吧,你显然可以做`A = dir('t*.txt')`。 (2认同)