MATLAB: Subscript indices must either be real positive integers or logicals

hello recently I'm learning matlab. i have this problem:
j = read(img);
u=im2bw(img);
imshow(u);
and main:
if[imgName,path] = uigetfile('*.jpg','Select the MATLAB code file');
img=imread([path imgName]);
j =read(img );
matlab error:Subscript indices must either be real positive integers or logicals. how can I read an image by main function that using other read function?

Best Answer

Why do you have "if" in this line:
if[imgName,path] = uigetfile('*.jpg','Select the MATLAB code file');
Try getting rid of that if, and just start with the brackets. Or better yet, try more robust code like this:
% Have user browse for a file, from a specified "starting folder."
% For convenience in browsing, set a starting folder from which to browse.
startingFolder = 'C:\Program Files\MATLAB'; % Wherever you want....
if ~exist(startingFolder, 'dir')
% If that folder doesn't exist, just start in the current folder.
startingFolder = pwd;
end
% Get the name of the file that the user wants to use.
defaultFileName = fullfile(startingFolder, '*.jpg');
[baseFileName, folder] = uigetfile(defaultFileName, 'Select a file');
if baseFileName == 0
% User clicked the Cancel button.
return;
end
fullFileName = fullfile(folder, baseFileName)