How to create an array of integers from a string

1 visualización (últimos 30 días)
W
W el 12 de Ag. de 2014
Respondida: Jan el 12 de Ag. de 2014
Hi everyone, I have a string of the form: 'm:n, i, j' and I want to create an array with those integers. For example, if my string was '1:3, 10, 11' then the desired array would be [1, 2, 3, 10, 11]. I've tried using the eval function but couldn't figure out how to assign the result of eval to an array. Does anyone have any suggestions?

Respuesta aceptada

Azzi Abdelmalek
Azzi Abdelmalek el 12 de Ag. de 2014
Editada: Azzi Abdelmalek el 12 de Ag. de 2014
s='1:3, 10, 11'
out=str2num(s)
With eval it should be something like
s='1:3, 10, 11'
eval(strcat('out=[', s ,']'))
  2 comentarios
W
W el 12 de Ag. de 2014
Thank you! I had tried using str2num earlier when the string was formatted a little differently and hadn't thought to try it again. It works great!

Iniciar sesión para comentar.

Más respuestas (1)

Jan
Jan el 12 de Ag. de 2014
Reduce the use of EVAL as far as possible:
s = '1:3, 10, 11'
out = eval(['[', s, ']']);
If the format is strictly 'm:n, i, j', this would be cleaner than eval:
d = sscanf(s, '%g:%g, %g, %g')
out = [d(1):d(2), d(3), d(4)]

Categorías

Más información sobre Data Type Conversion en Help Center y File Exchange.

Etiquetas

Community Treasure Hunt

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

Start Hunting!

Translated by