MATLAB - Convert Number Character array to Number Integer array/matrix?

*My problem*: Hi, I have an array *A of type char*, that reads like this:
196800271010
902589451069
052068830384
901778191098
I want to turn A into a numerical matrix that will separate the characters into individual number integers like so
[1 9 6 8 0 0 2 7 1 0 1 0
9 0 2 5 8 9 4 5 1 0 6 9
0 5 2 0 6 8 8 3 0 3 8 4
9 0 1 7 7 8 1 9 1 0 9 8]
What is the best way for this? *I've tried* str2num(A), but that treats the characters as one whole number per line (Ie first line is 1.9680) I've also tried this for loop
for i = 1:5 %the number of rows in the char array
s = num2str(A(i,:));
for t = length(s):-1:1
result(t) = str2num(s(t));
end
But this just returns the last line of the array, I want to have all of them. Thanks.

답변 (2개)

result = A - '0';
Mukesh Singla
Mukesh Singla 2020년 2월 19일
편집: Walter Roberson 2020년 2월 21일
your code is correct, just one thing you are need to look is that you need to store all the element in the array,
for i = 1:5
s = num2str(A(i,:));
for t = length(s):-1:1
result(i,t) = str2num(s(t));
try this you will get your result

댓글 수: 1

Needs a couple of end statements.
What is the purpose of the num2str(A(i,:)) step when A is already a character array? num2str() applied to a character vector returns the same vector?

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

카테고리

도움말 센터File Exchange에서 Operators and Elementary Operations에 대해 자세히 알아보기

질문:

Joe
2013년 3월 13일

댓글:

2020년 2월 21일

Community Treasure Hunt

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

Start Hunting!

Translated by