how to correct subscript indices error in following codes?

2 views (last 30 days)
a=0.85;
for i=1:7
filename=strcat('D:\2nd year\EXP season 2\Dry\cat1\',num2str(i),'.bmp');
I=imread(filename);
I1=I(:,:,2);
I2=I(:,:,3);
G_Channel_cat1(i-2)=mean(mean(I1(293+(-5:5),285+(-5:5))))-mean(mean(I2(293+(-5:5),285+(-5:5))))*a;
end

Accepted Answer

Walter Roberson
Walter Roberson on 19 Nov 2012
When i is 1, i-2 is going to be -1, and you cannot store into element number -1 of G_Channel_cat1.
It is not obvious what you are trying to do in that assignment statement, so I cannot suggest any fix other than not subtracting 2 from "i" at that point.
  4 Comments
satish thapaliya
satish thapaliya on 20 Nov 2012
Edited: Walter Roberson on 20 Nov 2012
Here is the code and error message
a=0.85;
for i=3:9
filename=strcat('D:\2nd year\EXP season 2\Dry\cat1\',num2str(i),'.bmp');
I=imread(filename);
I1=I(:,:,2);
I2=I(:,:,3);
G_Channel_cat1(i-2)=mean(mean(I1(293+(-5:5),285+(-5:5))))-mean(mean(I2(293+(-5:5),285+(-5:5))))*a;
end
for i=3:9
filename=strcat('D:\2nd year\EXP season 2\Dry\cat2\',num2str(i),'.bmp');
I=imread(filename);
I1=I(:,:,2);
I2=I(:,:,3);
G_channel_cat2(i-2)=mean(mean(I1(301+(-5:5),284+(-5:5))))-mean(mean(I2(301+(-5:5),284+(-5:5))))*a;
end
for i=3:9
filename=strcat('D:\2nd year\EXP season 2\Dry\cat3\',num2str(i),'.bmp');
I=imread(filename);
I1=I(:,:,2);
I2=I(:,:,3);
G_channel_cat3(i-2)=mean(mean(I1(310+(-5:5),283+(-5:5))))-mean(mean(I2(310+(-5:5),283+(-5:5))))*a;
end
for i=3:9
filename=strcat('D:\2nd year\EXP season 2\Dry\cat4\',num2str(i),'.bmp');
I=imread(filename);
I1=I(:,:,2);
I2=I(:,:,3);
G_channel_cat4(i-2)=mean(mean(I1(320+(-5:5),285+(-5:5))))-mean(mean(I2(320+(-5:5),285+(-5:5))))*a;
end
x=[0.121,0.422,0.844,4.219,12.053,21.094,60.267];
for i=1:7
y(i)=(G_channel_cat1(i)+G_channel_cat2(i)+G_channel_cat3(i)+G_channel_cat4(i))/4;
end
plot(y,x,'r')
??? Undefined function or method 'G_channel_cat1' for input arguments of type 'double'.
Walter Roberson
Walter Roberson on 20 Nov 2012
Your first "for" loop assigns to G_Channel_cat1 which has an upper-case C. All your other variables use a lower-case C there.

Sign in to comment.

More Answers (0)

Categories

Find more on Entering Commands in Help Center and File Exchange

Community Treasure Hunt

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

Start Hunting!