MATLAB Answers

0

Question about arrays to elements.

Asked by Portgas Ace on 29 Sep 2012
Sprintf makes an element into an array. is there an inverse function to this? for example array [ 2 3 4 5 6] = 23456
it should be a single element because our prof wont allow us to have an output of an array.

  3 Comments

José-Luis
on 29 Sep 2012
What have you done so far?
what i have to do is to make a base m to base n converter without using built in converter of matlab. so i have to use algorithms and a part of it is by dividing the input value to element per element and solve one by one. and then after having the values for each element, i have to compress it into one element which will then be the final answer.
José-Luis
on 29 Sep 2012
OK, I am going to give you something your professor probably won't like but it should give you an idea about how to proceed. It won't work for fractional numbers or exponential notation.

Sign in to comment.

3 Answers

Answer by José-Luis
on 29 Sep 2012

a = 0:20;
a = num2str(a);
a = [a(:)'];
a(regexp(a,'[^0-9]')) = [];

  3 Comments

Matt Fig
on 29 Sep 2012
What is the difference between your code and:
a = 0:20;
a = sprintf('%i',a);
José-Luis
on 1 Oct 2012
None really, but this was a homework question and I didn't want to give a direct answer. In hindsight, I can see that my answer was a tad misguided.
Matt Fig
on 1 Oct 2012
Oh, I just didn't know if you had something in mind that I missed.

Sign in to comment.


Jan
Answer by Jan
on 29 Sep 2012
Edited by Jan
on 29 Sep 2012

Str = '23456';
Vec = Str - '0';
Now Vec is the corresponding double vector.

  0 Comments

Sign in to comment.


Answer by Matt Fig
on 29 Sep 2012
Edited by Matt Fig
on 29 Sep 2012

I think the question is a little unclear, so I will go in a circle:
A = [2 3 4 5 6] % Start here
A2 = str2double(sprintf('%i',A)) % One element
A3 = num2str(A2)-'0' % Back to the beginning.

  0 Comments

Sign in to comment.