how to correct subscript indices error in following codes?

2 vues (au cours des 30 derniers jours)
satish thapaliya
satish thapaliya le 19 Nov 2012
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

Réponse acceptée

Walter Roberson
Walter Roberson le 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 commentaires
satish thapaliya
satish thapaliya le 20 Nov 2012
Modifié(e) : Walter Roberson le 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 le 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.

Connectez-vous pour commenter.

Plus de réponses (0)

Catégories

En savoir plus sur Entering Commands dans Help Center et File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by