How do you change bases without dec2base, etc.?

2 views (last 30 days)
I have to write a function that changes any positive real number in base 10 to any base from 2 to 9. The main part that I am struggling with is putting the inputed value into an array so you can manipulate each element. So for example, if I'm converting 23 in base 10 to base 2, how would I put the 23 into an array so that I could go about converting it? Any help would be greatly appreciated.
  2 Comments
Adam
Adam on 14 Feb 2017
What is wrong with just:
a = 23;
?
Though I'd name it something more useful.
Jen Kirk
Jen Kirk on 14 Feb 2017
I need to put each element of the number, the 2 and the 3, into an array so that I can manipulate each piece individually. I was trying to use num2str but it wasn't working..

Sign in to comment.

Accepted Answer

Stephen23
Stephen23 on 14 Feb 2017
Edited: Stephen23 on 14 Feb 2017
Method one: num2str (does not work with decimal digits):
>> N = 23;
>> vec = num2str(N)-'0'
vec =
2 3
Method two: from powers of ten:
>> pwr = floor(log10(N));
>> vec = mod(floor(N ./ 10.^(pwr:-1:0)), 10)
vec =
2 3

More Answers (0)

Community Treasure Hunt

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

Start Hunting!