# How do you write a matlab function that identifies if a string is a palindrome or not?

90 views (last 30 days)
Commented: Image Analyst on 8 Nov 2021
So far I've got ...
string = input('What is your number: '); disp(fliplr(string))
if string == fliplr(string) disp('Your number is a PALINDROME') else disp('Your number is NOT A PALINDROME') end
And now I'm stuck

Image Analyst on 30 Mar 2014
Almost. Try this:
string = input('What is your string: ', 's');
fprintf('Your string = %s\nFlipped, it = %s\n', string, fliplr(string));
if string == fliplr(string)
else
disp('Your number is NOT A PALINDROME')
end
Image Analyst on 30 Mar 2014
True.
string = lower(string);
string(string == ' ') = '';

sesha sai on 26 Sep 2020
function [ palindromic ] = palindrome( string )
if length(string) < 1
palindromic = logical(1);
return;
end
if string(1) ~= string(length(string))
palindromic = logical(0);
return;
end
palindromic = palindrome(string(2:length(string)-1));
end
Walter Roberson on 26 Sep 2020
The typecasts are mostly not needed in the code.

Benjamin Askelund on 19 Oct 2016
Edited: Benjamin Askelund on 19 Oct 2016
Hi, I made a code that flipps as well NOT USING fliplr based on "Image Analyst" code. Lots of people ask for this as far as I know
clc
A = input('What is your string: ', 's');
%flipp string
B = flip(A);
fprintf('Your word = %s\nflipped word is = %s\n', A, B);
%compare stringA and FlippedString (bool)
if strcmp(A, B) == 1
else
disp('Your number is NOT A PALINDROME')
end
This code also works for numbers. Just type numbers insted of strings
Sorce: https://se.mathworks.com/help/matlab/ref/flip.html
Signed BDA
##### 2 CommentsShowHide 1 older comment
Steven Lord on 19 Oct 2016
Lots of people ask for this because it's a fairly easy homework assignment and so it is one that's often assigned in courses where students are being introduced to MATLAB.

Bhuvana Krishnaraj on 9 Jan 2020
x=input('Enter number: ');
temp=x;
y = 0;
while x > 0
t = mod(x,10);
y = 10*y+t;
x = (x-t)/10; %% without this it will give floating value
end
if(y==temp)
disp('The number is palindrome');
else
disp('The number is not palindrome');
end
Walter Roberson on 26 Sep 2020
Suppose the user enters 050. That would certainly appear to be a palindrome. You use input() with no 's' to read it so you get a binary double precision value equal to decimal 50. You proceed to process it numerically and get 10*0 + 5 = 5. But 5 is not 50 so you say No it is not a palindrome. When it should probably be one.

Sizaka karki on 8 Nov 2021
x=input('Enter number: ');
temp=x;
y = 0;
while x > 0
t = mod(x,10);
y = 10*y+t;
x = (x-t)/10; %% without this it will give floating value
end
if(y==temp)
disp('The number is palindrome');
else
disp('The number is not palindrome');
end
Image Analyst on 8 Nov 2021
@Sizaka karki, isn't this just a copy of @Bhuvana Krishnaraj's answer? Did you add anything substantialy different?

Sizaka karki on 8 Nov 2021
x=input('Enter number: ');
temp=x;
y = 0;
while x > 0
t = mod(x,10);
y = 10*y+t;
x = (x-t)/10; %% without this it will give floating value
end
if(y==temp)
disp('The number is palindrome');
else
disp('The number is not palindrome');
end
Image Analyst on 8 Nov 2021