UNDEFINED VARIABLE ERROR AFTER EXECUTING FOR LOOP IN MATLAB

for k=1:numel(listOfImages)
data{k}=imread(fullfile(whereImagesReside, listOfImages(k).name));
data{k}=im2double(rgb2gray(data{k}));
[r,c] = size(data{k}); % get number of rows and columns in image
columnMatrix(:,k)=data(:);
V{k}=data(:);
end
meanIntensities = mean(columnMatrix,2);
But I get the error Undefined function or variable 'columnMatrix'. How can I solve this?

回答(2 个)

You did not initialize columnMatrix, and numel(listOfImages) was 0.
format compact
%Firstly, I converted all the images in the vector form.
whereImagesReside = 'lfwdataset';
%dir function will return the images in a structure array.
listOfImages= dir(fullfile(whereImagesReside, '*.pgm'));
%0x1 structure array is created
data = cell(size(listOfImages));
%pmg files are stored in column matrix columnMatrix in the end of the loop
%below
for k=1:numel(listOfImages)
data{k}=imread(fullfile(whereImagesReside, listOfImages(k).name));
data{k}=im2double(rgb2gray(data{k}));
[r,c] = size(data{k}); % get number of rows and columns in image
columnMatrix(:,k)=data(:);
V{k}=data(:);
end
But how can I initialize columnMatrix to 0?

1 个评论

The empty structure array from dir is the more immediate problem. You should try putting the complete path in the variable about where the images reside.

请先登录,再进行评论。

类别

在 帮助中心 和 File Exchange 中查找有关 File Operations 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by