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 Comments

Is this inside a txt file, or the string are loaded in MATLAB?
It's from a text file, and I've loaded the string into MATLAB. Both ways are possible
How did you load it into MATLAB?
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);

Sign in to comment.

 Accepted Answer

Ameer Hamza
Ameer Hamza on 17 May 2020
Edited: Ameer Hamza on 17 May 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 Comments

Thank you, works as intended!
I am glad to be of help!

Sign in to comment.

More Answers (0)

Categories

Products

Release

R2019a

Community Treasure Hunt

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

Start Hunting!