For Error: ??? Index exceeds matrix dimensions.

1 次查看(过去 30 天)
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

回答(3 个)

per isakson
per isakson 2014-4-6
编辑:per isakson 2014-4-6
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 2014-4-6
Check the sizes of your arrays
  3 个评论
Azzi Abdelmalek
Azzi Abdelmalek 2014-4-6
Without your data, I can't find where is the error
Mohamed Elwakdy
Mohamed Elwakdy 2014-4-6
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

请先登录,再进行评论。


Roger Stafford
Roger Stafford 2014-4-6
编辑:Roger Stafford 2014-4-6
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 个评论
Mohamed Elwakdy
Mohamed Elwakdy 2014-4-6
编辑:Mohamed Elwakdy 2014-4-6
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

请先登录,再进行评论。

类别

Help CenterFile Exchange 中查找有关 Matrix Indexing 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by