To substitute a string in matlab script (.m) file using MATLAB.

4 次查看(过去 30 天)
I have a script file (.m) file.
I would like to substitute " dist < 6 dist == 6 " in my matlab code file with "dist < 7 dist == 7" and dist < 8 dist == 8 and so on and save each modified script file as a separate .m file.
  1 个评论
Jan
Jan 2013-6-18
编辑:Jan 2013-6-18
What is the your question?
Did you see that the bars disappear in the forum, because they are used as inline code environment?

请先登录,再进行评论。

采纳的回答

Jan
Jan 2013-6-18
编辑:Jan 2013-6-18
The easiest way would be to replace the constant by a variable and use it as input:
function result = YourOriginalFunc(a)
result = (dist < 6 || dist == 6);
function result = YourNewFunc(a, b)
result = (dist < b || dist == b);
Then there is no need for writing a Matlab program which writes (modifies) Matlab programs. Most of all duplicating a function with changing one tiny detail only is a bad programming practice, because this reduces the maintainability.
But if you have really good reasons:
function result = YourOriginalFunc(a)
constant = 6;
result = (dist < constant || dist == constant);
And the modificator:
Str = fileread('YourOriginalfunc.m');
CStr = regexp(Str, '\n', 'split');
index = strncmp(CStr, 'constant =', 10);
for k = 6:10
CStr{index} = sprintf('constant = %d;', k);
FID = fopen(sprintf('NewFunc%d.m', k));
fprintf(FID, '%s\n', CStr{:});
fclose(FID);
end
Btw., dist <= constant is faster than comparing the values twice by < and == .

更多回答(0 个)

类别

Help CenterFile Exchange 中查找有关 Data Import and Analysis 的更多信息

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by