Asked by FIR
on 17 Feb 2012

I have a dataset of images(175images),i have found the mean of that and have saved,next i have query image from dataset,now i want to calculate euclidean distance and want to retrieve that image,

i did

for n=1:175; Distance=EuD( Features{1,n},FeaturesQuery); D{n}=Distance;

end

i get error as

Cell contents assignment to a non-cell array object.

Error in ==> MAIN at 116 D{n}=Distance; please help

Features=<1x175 cell>

FeaturesQuery=104.8872

please help

*No products are associated with this question.*

Answer by Tom Lane
on 17 Feb 2012

It is likely that you have assigned D to some value, perhaps a plain numeric value, earlier in the function. So it is not a cell array, and you can't assign into it using cell array notation. Just before you start the loop in which you want to assign into cells of D, try inserting either of the following lines:

clear D D = cell(1,175);

Answer by Image Analyst
on 17 Feb 2012

I just did this:

for n=1:175 Distance=10; %EuD( Features{1,n},FeaturesQuery); D{n}=Distance; end

and it ran fine. I didn't even preallocate D to be a cell array of length 175. No errors or warnings whatsoever. Now, we don't know what EuD returns but I thought you could toss anything you wanted into a cell so I'm not sure why the "D{n}=Distance" line would complain, regardless of what class type Distance was. Let me ask you, what class type and/or value does Distance have?

Show 3 older comments

Image Analyst
on 17 Feb 2012

FIR
on 18 Feb 2012

MATLAB and Simulink resources for Arduino, LEGO, and Raspberry Pi test

Learn moreOpportunities for recent engineering grads.

Apply Today
## 0 Comments