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

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 日

0 投票

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 件)

カテゴリ

ヘルプ センター および File ExchangeFile Operations についてさらに検索

質問済み:

2013 年 6 月 18 日

Community Treasure Hunt

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

Start Hunting!

Translated by