Numbering of repeating string in text file

Hi,
I have a repeating string as following:
materialIndex [
25, 36, 26, 21,-1,
21, 21, 21, 21,-1,
47, 36, 39,-1,
etc.
materialIndex [
47, 36, 37, 47,-1,
56, 54, 47, 47,-1,
47, 35, 36, 47,-1,
etc.
I would like to number these strings as following or similar:
materialIndex1 [
25, 36, 26, 21,-1,
21, 21, 21, 21,-1,
47, 36, 39,-1,
etc.
materialIndex2 [
47, 36, 37, 47,-1,
56, 54, 47, 47,-1,
47, 35, 36, 47,-1,
etc.
I couldn't find a solution so far to this problem.

4 commentaires

Ameer Hamza
Ameer Hamza le 16 Mai 2020
Is this inside a txt file, or the string are loaded in MATLAB?
Daniel Rohrer
Daniel Rohrer le 17 Mai 2020
It's from a text file, and I've loaded the string into MATLAB. Both ways are possible
KSSV
KSSV le 17 Mai 2020
How did you load it into MATLAB?
Daniel Rohrer
Daniel Rohrer le 17 Mai 2020
Modifié(e) : Daniel Rohrer le 17 Mai 2020
I used following code:
% Convert wrl to txt (ASCII)
files=dir('*.wrl');
for i=1:length(files)
filename=files(i).name;
[pathstr, name, ext] = fileparts(filename);
copyfile(filename, fullfile(pathstr, [name '.txt']))
end
% Open specific file, erase and replace syntax
fid = fopen(filename,'r');
f=fread(fid,'*char')';
fclose(fid);

Connectez-vous pour commenter.

 Réponse acceptée

Ameer Hamza
Ameer Hamza le 17 Mai 2020
Modifié(e) : Ameer Hamza le 17 Mai 2020
There can be several ways to do this. The following shows a method using a regular expression.
First, define a helper function and save it in a file.
function y = helperFun()
persistent n
if isempty(n)
n = 1;
end
y = num2str(n);
n = n+1;
end
then use the following code
str = fileread('test.txt'); % test.txt is name of text file
clear helperFun
new_str = regexprep(str, '(materialIndex)', '$1${helperFun()}')

2 commentaires

Daniel Rohrer
Daniel Rohrer le 17 Mai 2020
Thank you, works as intended!
Ameer Hamza
Ameer Hamza le 17 Mai 2020
I am glad to be of help!

Connectez-vous pour commenter.

Plus de réponses (0)

Catégories

En savoir plus sur Characters and Strings dans Centre d'aide et File Exchange

Produits

Version

R2019a

Community Treasure Hunt

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

Start Hunting!

Translated by