如何编写编辑另一个 MATLAB 文件 (.m) 的 MATLAB 代码?
How do I write a MATLAB code that edits another MATLAB file (.m)?
我有两个文件,Editor.m 和 Parameters.m。我想在 Editor.m 中编写代码,当 运行 执行以下任务时:
- 阅读 Parameters.m
- 在其中搜索一行(例如 dt=1)
- 用其他东西替换它(例如 dt=0.6)
- 节省 Parameters.m.
因此,在此过程结束时,Parameters.m 将包含行 dt=0.6 而不是 dt=1,我没有直接编辑它。
有办法吗?如果是,怎么做?
可以用regexprep
替换感兴趣的值
% Read the file contents
fid = fopen('Parameters.m', 'r');
contents = fread(fid, '*char').';
fclose(fid);
% Replace the necessary values
contents = regexprep(contents, '(?<=dt=)\d*\.?\d+', '0.6');
% Save the new string back to the file
fid = fopen('Parameters.m', 'w');
fwrite(fid, contents)
fclose(fid)
如果你能保证它只会出现 'dt=1'
,那么你可以使用 strrep
代替
contents = strrep(contents, 'dt=1', 'dt=0.6');
我有两个文件,Editor.m 和 Parameters.m。我想在 Editor.m 中编写代码,当 运行 执行以下任务时:
- 阅读 Parameters.m
- 在其中搜索一行(例如 dt=1)
- 用其他东西替换它(例如 dt=0.6)
- 节省 Parameters.m.
因此,在此过程结束时,Parameters.m 将包含行 dt=0.6 而不是 dt=1,我没有直接编辑它。
有办法吗?如果是,怎么做?
可以用regexprep
替换感兴趣的值
% Read the file contents
fid = fopen('Parameters.m', 'r');
contents = fread(fid, '*char').';
fclose(fid);
% Replace the necessary values
contents = regexprep(contents, '(?<=dt=)\d*\.?\d+', '0.6');
% Save the new string back to the file
fid = fopen('Parameters.m', 'w');
fwrite(fid, contents)
fclose(fid)
如果你能保证它只会出现 'dt=1'
,那么你可以使用 strrep
代替
contents = strrep(contents, 'dt=1', 'dt=0.6');