Matlab 搜索和替换变量

Matlab 搜索和替换变量,matlab,Matlab,我有大约100+配置文件,我正在工作。我需要找到并替换所有这些文件的各种变量。例如,我想找到这条线 振幅=100;并替换为:振幅=200;对于所有文件 我在网上搜索了一下,只找到了一个文件的解决方案。我正在寻找一种在Matlab中实现这一点的方法。有什么想法吗?如果这些文件可以作为普通文本文件打开,那么我就不会使用matlab。记事本++有一个替换选项,可以替换任意数量的文件,只需确保首先在备份文件上进行测试即可。所以,让它找到“振幅=100”,并用你想要的替换它 要了解如何操作,请查看以下内容

我有大约100+配置文件,我正在工作。我需要找到并替换所有这些文件的各种变量。例如,我想找到这条线

振幅=100;并替换为:振幅=200;对于所有文件


我在网上搜索了一下,只找到了一个文件的解决方案。我正在寻找一种在Matlab中实现这一点的方法。有什么想法吗?

如果这些文件可以作为普通文本文件打开,那么我就不会使用matlab。记事本++有一个替换选项,可以替换任意数量的文件,只需确保首先在备份文件上进行测试即可。所以,让它找到“振幅=100”,并用你想要的替换它

要了解如何操作,请查看以下内容:

如果不能这样做,请将所有文件放在同一个目录中(无论如何都必须这样做)。然后将该目录加载到matlab中的文件,并运行for循环。然而,它可能有点慢/ 基本上,如果你能做一个文件,你可以用for循环来做所有的事情


如果您需要帮助,我可以向您展示我以前使用过的一些代码。

那么,Matlab的解决方案是(递归地)打开目录中的所有文件。这里我展示了非递归解决方案的示例(它不检查子文件夹),但如果需要,修改它以搜索子文件夹也很容易:

d = dir(yourPath);
for i = 1 : length(d)
    if ~(d(i).isdir)
       %d(i) is file.
       replaceSingleFile(strcat(d(i).folder, d(i).name));
    end
end
正如您所说,您已经知道如何对单个文件进行替换,尽管要在这里得到完整的答案,解决方案可能是这样的(在函数
replaceSingleFile
中)


到目前为止你都试了些什么?谢谢。我能得到在这种情况下有效的代码吗?是的,但你必须调整它,我明天早上左右就要找它。尽管如此,我还是建议使用notepad++,如果你能用文本编辑器打开它并得到正常文本,你永远不会回答。下载它需要几秒钟,你可以在大约5分钟内完成,所以为什么要重写一些matlab代码,这将需要大约15分钟甚至更长的时间,取决于你的技能。谢谢你的回复。我正在使用Linux。Notepad++不适用于Linux或Mac。这就是为什么我不能使用它。我还试图编写一个代码来运行该文件。
F = fopen(fileYouWantReplaced);
i = 1;
while (~feof(F))
   L = fgetl(F);
   L = strrep(L, 'Amplitude = 100;', 'Amplitude = 200;');
   Buf{i} = L;
   i = i + 1;
end
fclose(F);

%now just write all Buf to the same file again.
F = fopen(file..., 'w'); % Discard contents.
for i = 1 : numel(Buf)
   fprintf(F, '%s\n', Buf{i});
end
fclose(F);