Error : Function definition is misplaced or improperly nested.

17 views (last 30 days)
here the code.
[filename,pathname] = uigetfile({'*'})
if ~isequal(filename,0)
info = imginfo(fullfile(pathname,filename));
if info.BitDepth == 1
msgbox('Citra harus RGB atau Grayscale');
return
else if info.BitDepth == 8
Img = imread(fullfile(pathname,filename));
axes(handles.axes1)
cla('reset')
imshow(Img)
title('Grayscale Image')
else
Img = rgb2gray(imread(fullfile(pathname,filename)));
axes(handles.axes1)
cla('reset')
imshow(Img)
title('Grayscale Image')
end
return
end
handles.Img = Img;
guidata(hObject,handles);
  5 Comments
Geoff Hayes
Geoff Hayes on 28 Apr 2019
For sure the last two lines are out of place and should be in the body of the block that defines the Img. And your first if block is missing an end.
suoh mikoto
suoh mikoto on 28 Apr 2019
that's right, there isn't a space on my "else if".
solved, thanks.

Sign in to comment.

Answers (1)

Geoff Hayes
Geoff Hayes on 28 Apr 2019
suoh - I think that one problem might be with your "else if". In MATLAB, there isn't a space and so this is just "elseif". The way you have it right now suggests that you have an else block followed by another if/else block which would need to be terminated with an end just like the previous two if blocks... but you only have two ends which might then be the source of the error.
For sure the last two lines are out of place and should be in the body of the block that defines the Img. And your first if block is missing an end.

Products

Community Treasure Hunt

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

Start Hunting!