MATLAB Answers

# Convert single string with many numbers to vector

22 views (last 30 days)
Pati Stan on 31 Jul 2019
I have the following string
hue = '10 20 30 40 50';
That I want to turn into a vector of those 5 values
hue_vec = [10 20 30 40 50];
How can I do this? Thanks in advance!
##### 0 CommentsShowHide -1 older comments

Sign in to comment.

### Accepted Answer

madhan ravi on 31 Jul 2019
hue_vec = str2double(regexp(hue,'\d+','match'))
##### 1 CommentShowHide None
madhan ravi on 31 Jul 2019
If you have decimals then the expressions would be:
hue_vec = str2double(regexp(hue,'\d*[\.]?\d*','match'))

Sign in to comment.

### More Answers (3)

Fangjun Jiang on 31 Jul 2019
a=str2num(hue);
##### 2 CommentsShowHide 1 older comment
Stephen Cobeldick on 1 Aug 2019
Note that str2num relies on eval.

Sign in to comment.

Stephen Cobeldick on 1 Aug 2019
Edited: Stephen Cobeldick on 1 Aug 2019
Very simple, very efficient, no evil eval:
>> hue = '10 20 30 40 50';
>> vec = sscanf(hue,'%f',[1,Inf])
vec =
10 20 30 40 50
##### 2 CommentsShowHide 1 older comment
Stephen Cobeldick on 7 Aug 2019

Sign in to comment.

Pati Stan on 31 Jul 2019
This worked beautifully! Thank you!
##### 0 CommentsShowHide -1 older comments

Sign in to comment.

### Community Treasure Hunt

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

Start Hunting!