How to "increment" a pattern in a string array ?

21 visualizaciones (últimos 30 días)
Thibaut
Thibaut el 7 de Jun. de 2020
Comentada: Ameer Hamza el 8 de Jun. de 2020
Hello guys,
I have a string character like : '[XYZ]_(?:%d|%d|%d|%d)' .In this example I have 4 values (%d) but maybe in the future I could have more. So I would like to create a loop to increment the pattern automatically.
For instance, if tomorrow I have 5 values, I would like to have :
[XYZ]_(?:%d|%d|%d|%d|%d)
Is there anyway to do this ?
Thanks you really much for your help !
Thibaut
  2 comentarios
Thibaut
Thibaut el 7 de Jun. de 2020
In some applications, I have only 5 variables but in some others, I can have up to 19 variables. It means I have to increment the pattern X times by myself which is really long and source of mistake !

Iniciar sesión para comentar.

Respuesta aceptada

Ameer Hamza
Ameer Hamza el 7 de Jun. de 2020
Something like this
x = 1:4;
sprintf(['[XYZ]_(?:' repmat('%d|',1,numel(x)-1) '%d)'], x)
Result
ans =
'[XYZ]_(?:1|2|3|4)'
and
x = 1:10;
sprintf(['[XYZ]_(?:' repmat('%d|',1,numel(x)-1) '%d)'], x)
Result
ans =
'[XYZ]_(?:1|2|3|4|5|6|7|8|9|10)'
  2 comentarios
Thibaut
Thibaut el 7 de Jun. de 2020
Thank you really much !
Ameer Hamza
Ameer Hamza el 8 de Jun. de 2020
I am glad to be of help!

Iniciar sesión para comentar.

Más respuestas (0)

Categorías

Más información sobre Loops and Conditional Statements en Help Center y File Exchange.

Community Treasure Hunt

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

Start Hunting!

Translated by