Hello!
I am very new to MatLab. I am wondering, what is the simplest way to convert a 5-digit number into a matrix of those 5 digits.
Thanks,

댓글 수: 3

Image Analyst
Image Analyst 2012년 2월 9일
What do want as the output, numbers (integers, doubles, etc.) or characters?
student
student 2012년 2월 9일
I want to convert it to integers.
As in, 12345 into [ 1 , 2 , 3 , 4 , 5 ]
Andrei Bobrov
Andrei Bobrov 2012년 2월 10일
:)
fix(rem(TheNumber*10.^-(ceil(log10(TheNumber)):-1:1),1)*10)

댓글을 달려면 로그인하십시오.

답변 (2개)

Walter Roberson
Walter Roberson 2012년 2월 9일

0 개 추천

sprintf('%d', TheNumber) - '0'
is the simplest, but not the most efficient.
Benjamin Schwabe
Benjamin Schwabe 2012년 2월 9일

0 개 추천

You can do that by simply using the following code:
p = 12345; % define your number
pstr=num2str(p);
n=length(pstr);
v=zeros(n,1);
for k=1:n
v(k)=str2double(pstr(k));
end
It will work for all integer numbers. For non Integer numbers, the "." will be transformed into 'NaN'.

댓글 수: 2

Benjamin Schwabe
Benjamin Schwabe 2012년 2월 9일
Maybe some more details:
I convert the number to a string with num2str, then I take each character of the string and transfort it back to a number.
If you want to have a row vector instead of a column, just replace
v=zeros(n,1); by v=zeros(1,n);
Walter Roberson
Walter Roberson 2012년 2월 10일
When you are dealing with single digits, subtracting the character '0' is much more efficient than str2double().

댓글을 달려면 로그인하십시오.

카테고리

도움말 센터 및 File Exchange에서 Data Type Conversion에 대해 자세히 알아보기

질문:

2012년 2월 9일

편집:

2013년 10월 8일

Community Treasure Hunt

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

Start Hunting!

Translated by