I want to merge an array to a number. i.e., if
>>x=1:5;
do some operation on x and get the result like
>>y=12345
for that I have written this code...
x=1:5;
y=0;
for i=1:length(x)
y=y*10+x(i);
end
Is there any short way to do this ?

 採用された回答

Andrei Bobrov
Andrei Bobrov 2011 年 10 月 9 日

3 投票

str2double(sprintf('%d',x))

その他の回答 (2 件)

Zhao g-liang
Zhao g-liang 2011 年 10 月 9 日

0 投票

what about this x=1:5; 10.^(x(end:-1:1)-1)*x'

1 件のコメント

Walter Roberson
Walter Roberson 2011 年 10 月 9 日
Better to use
10.^(length(x)-1:1:0)*x.'
If the poster could rely upon x being consecutive digits then the poster could just use '0' + (x(1):x(end))

サインインしてコメントする。

Walter Roberson
Walter Roberson 2011 年 10 月 9 日

0 投票

str2double(num2str(x))

1 件のコメント

Raviteja
Raviteja 2011 年 10 月 9 日
Is this working?

サインインしてコメントする。

カテゴリ

ヘルプ センター および File Exchange で Matrices and Arrays についてさらに検索

Community Treasure Hunt

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

Start Hunting!

Translated by