# Can someone help me with this matlab code

i need to build a code which asks the user for the size of the desired diamond and then draws it, i can get this to workl perfectly by using the fprintf command and building the diamond out of 4 parts,: see code-

Code:
clc
clear
h=input('enter height of diamond :');
y=1;
while y<=h/2
for x=1:h-1
if x<=((h)/2-(y-1))
fprintf(1,'*\t');
end
if x>(h)/2-(y-1) & x<(h)/2+(y-1)
fprintf(1,'\t');
end
if x>=((h)/2+(y-1)) &x<=h-1
fprintf(1,'*\t');
end
end
y=y+1;
fprintf(1,'\n')
end

while y>h/2 &y<=h
for x=1:h-1
if x<=((h)/2-(h-y))
fprintf(1,'*\t');
end
if x>(h)/2-(h-y) & x<(h)/2+(h-y)
fprintf(1,'\t');
end
if x>=((h)/2+(h-y)) &x<=h-1
fprintf(1,'*\t');
end
end
y=y+1;
fprintf(1,'\n')
end
but for any even numbers i put in as my size, i get 2 extra asterixs on the corners, can anyone see how i chan get rid of them?

Related Engineering and Comp Sci Homework Help News on Phys.org
MATLABdude
Look inside the loops that create the horizontal rows of asterisks. You actually have a degenerate case where two of the if statements get executed! (At the very top and very bottom rows)

thats what i thought must be happening, but i cannot find where, could you show me

MATLABdude
i think that the problem comes fro the 1st line, where (y-1)=0 therefore, (h)/2-(y-1) is equal to x>(h)/2+(y-1) and so both the 1st and 3rd if commands are executed,
so i tried making one <= and one > but that messed up my whole diamond

MATLABdude