Hi, I want to reverse a number, not a vector, like 8549 to 9458. I used fliplr , or flipud, or y = x(end:-1:1), They just work for row vector. Please, help. Thank you

답변 (8개)

Azzi Abdelmalek
Azzi Abdelmalek 2012년 12월 1일
편집: Azzi Abdelmalek 2012년 12월 1일

6 개 추천

a=8549
out=str2num(fliplr(num2str(a)))

댓글 수: 3

Aritra Chatterjee
Aritra Chatterjee 2013년 9월 14일
Great!!! Great!!!!
János Stenszky
János Stenszky 2018년 5월 14일
Thanks!
Uchechukwu Obimma
Uchechukwu Obimma 2020년 5월 11일
Thanks

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

Roger Stafford
Roger Stafford 2014년 11월 21일

3 개 추천

@Jessica: Let x be a non-negative integer. Then y will have the decimal digits of x in reversed order.
y = 0;
while x > 0
t = mod(x,10);
y = 10*y+t;
x = (x-t)/10;
end

댓글 수: 2

Kunal  Kabi
Kunal Kabi 2017년 6월 8일
Thank you sir because of you i got the idea @RogerStafford.
ABHAS BHATIA
ABHAS BHATIA 2018년 1월 14일
Thanks for the solution @Jessica

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

Kunal  Kabi
Kunal Kabi 2017년 6월 8일
편집: Jan 2019년 8월 28일

2 개 추천

If you want to find palindrome numbers between two range here is the answer
clc;
clear all;
close all;
num=input('Enter first range:');
num1=input('Enter second range:');
for i=num:num1
temp=i;
reverse=0;
while temp > 0
t = mod(temp,10);
reverse = 10*reverse+t;
temp = (temp-t)/10;
end
if i==reverse
fprintf('Number is palindrome. %d\n',reverse);
end
end
Jan
Jan 2018년 1월 14일
편집: Jan 2018년 1월 14일

1 개 추천

A vectorized version of Roger's method:
n = 8549;
d = 10 .^ (0:floor(log10(n))); % [1 10, 100, 1000]
v = rem(floor(n ./ d), 10); % The vector of digits
r = v * flip(d).' % Vector multiplication with [1000, 100, 10, 1]
José-Luis
José-Luis 2012년 12월 1일

0 개 추천

A vectorized, faster alternative
For integers:
your_answer = flipud(sscanf(fliplr(sprintf('%d ',a)),'%d '));
And floating point:
your_answer = flipud(sscanf(fliplr(sprintf('%f ',a)),'%f '));
Example:
a=randi(115422,10000,1);
your_val = flipud(sscanf(fliplr(sprintf('%d ',a)),'%d '));
Jessica
Jessica 2014년 11월 21일

0 개 추천

what if you aren't allowed to use any string variables, string related function, digitrevorder() and fliplr()??

댓글 수: 1

Andrew Reibold
Andrew Reibold 2014년 11월 21일
Then you can do divide by 10 tricks with rounding to save each digit, then rearrange after.

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

Kunal  Kabi
Kunal Kabi 2017년 6월 8일

0 개 추천

Here is your answer
clc;
clear all;
close all;
num=input('Enter a number:');
num1=num;
reverse=0;
while num1 > 0
t = mod(num1,10);
reverse = 10*reverse+t;
num1 = (num1-t)/10;
end
reverse
num
if num==reverse
disp('Number is palindrome.');
else
disp('Number is not palindrome');
end
ANIRUDDHA
ANIRUDDHA 2022년 9월 6일

0 개 추천

  1. Using function statement, find out the sum of the inverse of any two numbers, a, b. Choose any value of a and b to run program?

댓글 수: 1

Walter Roberson
Walter Roberson 2022년 9월 6일
This does not appear to be an answer to the question that was asked.

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

카테고리

도움말 센터File Exchange에서 Creating and Concatenating Matrices에 대해 자세히 알아보기

제품

질문:

2012년 12월 1일

댓글:

2022년 9월 6일

Community Treasure Hunt

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

Start Hunting!

Translated by