I would like to rename some variables in an m-file, and would like to automate this process. I have tried using regexprep, but ran into some problems. I noticed a feature in the newest versions of Matlab, where you can automatically rename variables. Is there a command line version of this functionality. Alternatively, what would be the best way of renaming the variables, without having to run the file?

2 commentaires

Cedric
Cedric le 25 Avr 2013
Do you know the name of these variables a priori, or is it something that has to be detected by the program?
Etienne Coetzee
Etienne Coetzee le 25 Avr 2013
Yes, I have the names, but some variables are for instance N and NN, so I am not sure how to prevent NN from changing when I want to change N to AB for instance. NN will then become ABAB.

Connectez-vous pour commenter.

 Réponse acceptée

Walter Roberson
Walter Roberson le 24 Avr 2013

2 votes

Example of replacing a variable in a string:
S = 'x^2 + 3*x*y + x1/x';
regexprep(S, '(?<![A-Za-z0-9_])x(?![A-Za-z0-9_])', 'YO')

3 commentaires

Cedric
Cedric le 25 Avr 2013
Modifié(e) : Cedric le 25 Avr 2013
Is there a reason why you didn't use \w in the look-around? Was it just to make the pattern more explicit for the example?
Etienne Coetzee
Etienne Coetzee le 25 Avr 2013
Hi Walter. That is exactly what I wanted. I have tried it, and it works. Thank you. That has made my day.
Walter Roberson
Walter Roberson le 25 Avr 2013
\w would likely be a good idea. I was thinking at the time that it matched a slightly different set of characters than was needed for MATLAB identifiers, but you are right that it is the same.

Connectez-vous pour commenter.

Plus de réponses (0)

Produits

Community Treasure Hunt

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

Start Hunting!

Translated by