How can I modifya string into a ".m" file from a new ".m" file?

9 次查看(过去 30 天)
Hi. I'd like to know if is it possible to modify a string (or part of it) from outside, i.e. create a new ".m" file and modify, or change, strings of an existent ".m" file from the new one. Thanking you for your attention, I'm looking forward for your answers.
  3 个评论
Matt Kindig
Matt Kindig 2012-10-10
Hi Antonio,
Your question is a bit unclear. Are you saying that you want to do a search/replace in the m-file, and then write out the replaced file as a new file? If so, you can either use the "Find & Replace" utility in the Matlab IDE (Ctrl+F), or you can do it in code using something like this:
str = fileread('/path/to/your/mfile.m');
newstr = strrep(str, 'oldtext1', 'replacetext1');
newstr = strrep(newstr, 'oldtext2', 'replacetext2');
% etc.
%now write new file
fid = fopen('/path/to/newfile.m', 'wt');
fprintf(fid, '%s', newstr);
fclose(fid);
Antonio
Antonio 2012-10-11
clc clear all
INTERV_DOWN=3000; INTERV_UP=4000;
TEXT = FILEREAD('changestrings.m');
MODIFIEDSTR = STRREP(TEXT,'1000','INTERV_DOWN') MODIFIEDSTR = STRREP(TEXT,'1500','INTERV_UP')
ERROR: ??? Undefined function or method 'STRREP' for input arguments of type 'char'.
Error in ==> aprire at 14 MODIFIEDSTR = STRREP(TEXT,'1000','INTERV_DOW')

请先登录,再进行评论。

回答(1 个)

Image Analyst
Image Analyst 2012-10-10
Yes, use fopen, fgets or fgetl, fprintf, and fclose.
  2 个评论
Antonio
Antonio 2012-10-11
clc clear all
INTERV_DOWN=3000; INTERV_UP=4000;
TEXT = FILEREAD('changestrings.m');
MODIFIEDSTR = STRREP(TEXT,'1000','INTERV_DOWN') MODIFIEDSTR = STRREP(TEXT,'1500','INTERV_UP')
ERROR: ??? Undefined function or method 'STRREP' for input arguments of type 'char'.
Error in ==> aprire at 14 MODIFIEDSTR = STRREP(TEXT,'1000','INTERV_DOW')

请先登录,再进行评论。

类别

Help CenterFile Exchange 中查找有关 String Parsing 的更多信息

标签

Community Treasure Hunt

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

Start Hunting!

Translated by