Formatting or encoding issue using fprintf
5 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
Hi everyone. I am writing a script that is intended to automatically update information for me but I am having trouble towards the end where the string is saved to a .txt file.
The code that I have so far is:
S=regexprep('base string','keyword','new word')
G=char(S)
M=fopen('file.txt','wt')
fprintf(M,'%s',G)
fclose(M)
I am using regexprep to alter the original file and replace a word within. However, trying to use fprintf directly from the regexprep gives me the error "function is not defined for 'cell' inputs"
To avoid this error, I used the char function to convert the cell S into a character array. However, when G (the result of the char function) is saved to a text file, it is clearly formatted incorrectly. [An excerpt of the saved file: "b('-t'*(a('-t'*(eeoo"]
I can not seem to find any other functions that either do not produce an error in the fprintf function or give me gibberish in my saved file.
Any help would be greatly appreciated. Thanks for reading this long post at the least!
~Sarah :)
0 commentaires
Réponse acceptée
Walter Roberson
le 2 Sep 2011
fprintf(M,'%s',S{:}) %without needing to convert to char()
Or,
fprintf(M,'%s',G.')
4 commentaires
Walter Roberson
le 2 Sep 2011
A) don't use textread, use textscan
B) Use '%[^\n]' as the format instead of '%s'
Plus de réponses (1)
Fangjun Jiang
le 2 Sep 2011
S=regexprep('base string','keyword','new word') shouldn't return a cell array if your input is a string as 'base string'.
Try to work out your regexprep() first. Using debugging mode to check the result of your regexprep() before writing to the text file.
Another function is strrep().
Voir également
Catégories
En savoir plus sur Characters and Strings 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!