Effacer les filtres
Effacer les filtres

For Error: ??? Index exceeds matrix dimensions.

1 vue (au cours des 30 derniers jours)
Mohamed Elwakdy
Mohamed Elwakdy le 6 Avr 2014
Dear Sir,
This part of my code...I don't know why I have this error "??? Index exceeds matrix dimensions"...
T =[];
for j = 41:41:492
S1Secondcell1 = x1Firstrow16 (j+1: j+j, :);
X1= S1Secondcell1 (:,1);
Y1 = S1Secondcell1(:,2);
p1 = polyfit(X1,Y1,20)
T = [T; p1];
end

Réponses (3)

per isakson
per isakson le 6 Avr 2014
Modifié(e) : per isakson le 6 Avr 2014
You don't supply enough information to make it possible for us to find the cause of the error.
Here are some links on debugging in Matlab
Hint: what does
size( x1Firstrow16 )
return?

Azzi Abdelmalek
Azzi Abdelmalek le 6 Avr 2014
Check the sizes of your arrays
  3 commentaires
Azzi Abdelmalek
Azzi Abdelmalek le 6 Avr 2014
Without your data, I can't find where is the error
Mohamed Elwakdy
Mohamed Elwakdy le 6 Avr 2014
Dear Azzi,
Thank you very much on your interest...
For the data file, please visit the website below:
https://docs.google.com/file/d/0B254WGMh1VZTLUMyOHRPdEdMUE4xc3JNX1Z2Qkg5QTZuSE04/edit
This is my full code:
load TCheckingclass6.txt;
Firstrow16 = TCheckingclass6(1,:);
x1Firstrow16 = vec2mat(Firstrow16,2); R = size(x1Firstrow16); % 538 rows and 2 columns
S1Secondcell41= x1Firstrow16(1:41,:); X1 = S1Secondcell41 (:,1); Y1 = S1Secondcell41 (:,2); p1 = polyfit(X1,Y1,20);
T =[];
for j = 41:41:492
S1Secondcell1 = x1Firstrow16 (j+1: j+j, :);
X2= S1Secondcell1 (:,1);
Y2 = S1Secondcell1(:,2);
p2 = polyfit(X2,Y2,20);
T = [T; p2];
end
Thank you very much

Connectez-vous pour commenter.


Roger Stafford
Roger Stafford le 6 Avr 2014
Modifié(e) : Roger Stafford le 6 Avr 2014
I rather think your trouble is caused by the way you indexed the array 'x1Firstrow16'. Its rows are successively indexed as:
41:82
83:164
123:246
165:328
.......
493:984
These are overlapping each other more and more as j increases. Somehow I doubt if that is what you meant to do, and I doubt that the array has 984 rows. You can check that easily with the 'size' command.
  1 commentaire
Mohamed Elwakdy
Mohamed Elwakdy le 6 Avr 2014
Modifié(e) : Mohamed Elwakdy le 6 Avr 2014
Dear Roger,
From these steps: for j = 41:41:492 S1Secondcell1 = x1Firstrow16 ( j+1: j+j , :); I am looking to have this output:
42:82
83:123
124:164 .......
If the codes above is wrong ... How can I fixed it??
Thank you very much

Connectez-vous pour commenter.

Catégories

En savoir plus sur Matrix Indexing 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