index out of bound

intial_image=zeros(180,1);
for i=1:180
intial_image(i)=i;
end
y =zeros(30,1);
y = datasample(intial_image,30);
disp(y(2,1));
size3=0;
nBins=8;
Nind=0;
h1=0;
count=0;
for i=1:30
if(numel(y)==30)
jpgFileName = strcat('C:\Users\priya\Desktop\Fashion Photography\',num2str(y(i)), '.jpg');
I= imread(jpgFileName);
[row,col,m]=size(I);
size3=size3+ row*col;
count=count+1;
end
giving error:
can not access y(2,1) because numel(y)=1.

2 Comments

Stephen23
Stephen23 on 20 Jan 2016
Please show us all of the error message. This means all of the red text.
The code needs to be simplified. Replace this:
initial_image=zeros(180,1);
for i=1:180
intial_image(i)=i;
end
with this:
initial_image = (1:180).';
There is no point in preallocating y like this:
y =zeros(30,1);
because it is completely reallocated on the very next line:
y = datasample(...)

Answers (1)

Whatever
datasample(intial_image,30)
is, it is resulting in a scalar.
What is the result of
which -all datasample
? Is it from the Statistics Toolbox or does it resolve to one of your own routines?

This question is closed.

Asked:

on 20 Jan 2016

Closed:

on 20 Aug 2021

Community Treasure Hunt

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

Start Hunting!