Effacer les filtres
Effacer les filtres

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

4 vues (au cours des 30 derniers jours)
Priya
Priya le 18 Juin 2013
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 commentaire
Jan
Jan le 18 Juin 2013
Modifié(e) : Jan le 18 Juin 2013
What is the your question?
Did you see that the bars disappear in the forum, because they are used as inline code environment?

Connectez-vous pour commenter.

Réponse acceptée

Jan
Jan le 18 Juin 2013
Modifié(e) : Jan le 18 Juin 2013
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 == .

Plus de réponses (0)

Catégories

En savoir plus sur Data Import and Analysis dans Help Center et File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by