Index exceed matrix dimensions

조회 수: 7 (최근 30일)
Esraa Abdelhalim
Esraa Abdelhalim 2017년 11월 28일
댓글: Walter Roberson 2017년 11월 30일
I am writing this function and for loc = 5 it works fine for any number of popsizes but when I extend it to larger sizes it gives error "Index exceeds matrix dimension" kindly find the code below I tried to test it for popsize = 10 and I found that the f1 and f2 exceeds the 10 counts i dont know why and ofcourse f(i) only contains 10 values hence i get this error I hope I can find help;
function [ f ] = VRPObj8Old1 ( x, popsize, loc, d, a)
f = zeros(popsize,1);
for i = 1: popsize
f1 = 0;
for l = 1:loc
f1 = f1 + x( 1, l, i) * a;
end
f2 = 0;
for j = 1:loc
for o = 1:loc
f2 = f2 + x( j, o, i) * d(j , o);
end
end
f(i) = f1 + f2;
end

답변 (1개)

Roger Stafford
Roger Stafford 2017년 11월 28일
You will get that error message if either 'd' is not at least of size loc-by-loc, or 'x' is not at least of size loc-by-loc-by-popsize.
  댓글 수: 2
Esraa Abdelhalim
Esraa Abdelhalim 2017년 11월 29일
Actually I tested this on a 5by5 (loc=5) matrix and it worked fine but when I increase it to larger size it gives me that error ..
Walter Roberson
Walter Roberson 2017년 11월 30일
At the time of failure, what is size(x), size(d), size(a), and what are popsize and loc ?

댓글을 달려면 로그인하십시오.

카테고리

Help CenterFile Exchange에서 Creating and Concatenating Matrices에 대해 자세히 알아보기

Community Treasure Hunt

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

Start Hunting!

Translated by