How to reverse a number?
古いコメントを表示
Hi,
I want to reverse a number without using MATLAB functions "digitrevorder()" and "fliplr()". Please help. Thank you!
回答 (3 件)
Evan
2014 年 11 月 18 日
x = 1234;
s = num2str(x) - '0';
xr = polyval(s(end:-1:1),10)
7 件のコメント
Evan
2014 年 11 月 18 日
Note that this answer is for a single number (scalar), not a vector.
John D'Errico
2014 年 11 月 18 日
編集済み: John D'Errico
2014 年 11 月 18 日
+1
I suppose polyval works here, though I would not have approached it that way.
You could as easily have just used str2num, in which case polyval would be unnecessary, as well as the conversion from char to numeric in the middle by subtracting '0'.
A = 1234;
B = num2str(A);
B = str2num(B(end:-1:1))
B =
4321
There are often many ways to solve a problem in MATLAB, all of which are quite reasonable.
Image Analyst
2014 年 11 月 18 日
For what it's worth, I was thinking of John's method too (which he should have put as a separate answer so I could vote for it.)
Guillaume
2014 年 11 月 18 日
I would think that since it looks very much like an assignment, the idea is to force the student to use a loop. There's certainly no point of disallowing fliplr if you allow any of the solutions presented here.
John D'Errico
2014 年 11 月 18 日
編集済み: John D'Errico
2014 年 11 月 18 日
A moderately interesting question is to find a solution in one line, without needing to form an intermediate variable. (And without the application of fliplr!) Seems trivial with that function.
Syed Haider
2014 年 11 月 18 日
A = [1 2 3 4; 5 6 7 8];
y = A(:,end:-1:1)
3 件のコメント
John D'Errico
2014 年 11 月 18 日
That reverses a vector or array of numbers, not the digits of a single number.
Syed Haider
2014 年 11 月 18 日
Yeah you are right :) I am sorry. Should i remove the answer? or may be it will be helpful for someone.
John D'Errico
2014 年 11 月 18 日
I don't see any reason to remove it.
saurabh jare
2023 年 3 月 7 日
function ran=reverse_number(x)
%x=input('Enter the value for checking the palindromic= \n');
check=x;
ran=0;
while (check~=0)
ran=(ran*10)+mod(check,10);
check=fix(check/10);
end
カテゴリ
ヘルプ センター および File Exchange で Matrices and Arrays についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!