Date: Feb 13, 2013 5:16 AM
Author: Abder-Rahman
Subject: ??? Index exceeds matrix dimensions.
I have the following code (part of a larger program) in `matlab`:

while(k<n)

C.(sprintf('Cnew')) = C.(sprintf('C%d',k));

d1 = equalize_dimension(a.F, C.(sprintf('Cnew')));

distance_new = distance(d1.x, d1.y);

k = k + 1;

end

If you want to substitute values since I have included part of the program, this would be as follows:

C.(sprintf('Cnew')):

78

And, for `a.F` it is as follows:

78 82 84 80

80 84 86 82

82 87 88 85

82 87 89 86

For the `equalize_dimension(x,y)` function, it is as follows:

function n = equalize_dimension (x,y)

[r1 c1] = size(x);

[r2 c2] = size(y);

if r1<r2

e= r2-r1;

for i=1:e

x(r1+1,1)=0;

r1 = r1 + 1;

end

[r1 c1] = size(x);

n.x =x;

n.y = y;

end

if r1>r2

e = r1-r2;

for i=1:e

y(r2+1,1)=0;

r2 = r2 + 1;

end

[r2 c2] = size(y);

n.x = x;

n.y = y;

end

if c1<c2

e= c2-c1;

for i=1:e

x(1,c1+1)=0;

c1 = c1 + 1;

end

[r1 c1] = size(x);

n.x = x;

n.y = y;

end

if c1>c2

e = c1-c2;

for i=1:e

y(1,c2+1)=0;

c2 = c2 + 1;

end

[r2 c2] = size(y);

n.x = x;

n.y = y;

end

if r1==r2 && c1==c2

n.x = x;

n.y = y;

end

And, for the `distance(x,y)` function, it is as follows:

function m = distance(x,y)

[r c] = size(x);

for i=1:r

for j=1:c

summation = (sum(sum(pdist2(x,y))));

end

end

m=summation;

end

When I run the program, I get the following error:

??? Index exceeds matrix dimensions.

Error in ==> fs at 36

distance_new = distance(d1.x, d1.y);

Why is that?

Thanks.