Welcome to ShenZhenJia Knowledge Sharing Community for programmer and developer-Open, Learning and Share
menu search
person
Welcome To Ask or Share your Answers For Others

Categories

In MATLAB, how can I return the contents of a vector as a single integer. For example, if a = [ 1 2 3 4 5 6 7 8 9 ], then I want a function that returns the number 123456789.

It's almost squeeze but removing all dimensions!!

My current solution is to read the vector as a string using sprintf with a format of '%i', then convert it to a number using str2double. That's ok if you only need to use it a few times, but fairly inefficient if it's being used 100000 times.

See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
thumb_up_alt 0 like thumb_down_alt 0 dislike
768 views
Welcome To Ask or Share your Answers For Others

1 Answer

You can use

result = a*10.^(numel(a)-1:-1:0).';

or equivalently

result = sum(a.*10.^(numel(a)-1:-1:0));

They seem to be about equally fast.


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
thumb_up_alt 0 like thumb_down_alt 0 dislike
Welcome to ShenZhenJia Knowledge Sharing Community for programmer and developer-Open, Learning and Share
...