How to append several elements to a single element in an array?

I have an array like:
A = [1 2 3 4 5 6 7 8 9 10];
I want to merge all the elements into a single element, like:
A = [12345678910];
but I cannot see any clear way to do so, as functions like 'reshape' or 'horizcat' simple place all the elements vertically, instead of appending all the values into one long element.
Any help would be really appreciated!
Thanks.

1 Commento

Note to others: see my answer if you want a simpler, faster solution.

Accedi per commentare.

 Risposta accettata

Birdman
Birdman il 31 Gen 2018
Modificato: Birdman il 31 Gen 2018
%%to see the complete number with all digits
format longg
str2double(strjoin(string(A),''))

6 Commenti

I added it to the code:
A = [1 2 3 4 5 6 7 8 9 10];
%to see the complete number with all digits
format long
B = str2double(strjoin(string(A),''));
I am afraid it produces '1.234567891000000e+10' as the value within B, am I implementing it incorrectly?
Type
format longg
with 2 g. This only changes its display format.
I am still getting the same result, is there anything else I need to include in my implementation of it?
No you don't. But be aware of the fact that
12345678910
is displayed in a scientific form of
1.2346e+10
by default. My only aim was to show you that the number is equal to what you want. So the following code:
B = str2double(strjoin(string(A),''));
actually does what you want.

Accedi per commentare.

Più risposte (1)

Stephen23
Stephen23 il 31 Gen 2018
Modificato: Stephen23 il 31 Gen 2018
Much faster and simpler than using string, strjoin, and str2double:
>> A = [1 2 3 4 5 6 7 8 9 10];
>> N = sscanf(sprintf('%d',A),'%f')
N = 12345678910

Categorie

Community Treasure Hunt

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

Start Hunting!

Translated by