```Date: Feb 13, 2013 1:34 PM
Author: Curious
Subject: Re: ??? Index exceeds matrix dimensions.

Abder-Rahman Ali <abder.rahman.ali@gmail.com> wrote in message <7deb2095-2367-4ea1-b921-7126187692ab@googlegroups.com>...> 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.Are you sure d1.x and d1.y are the same size?I think you should check that.In function distance you have:[r c] = size(x);See if[r2 c2] = size(y);gives the same result.If not, thats one thing you need to fix.
```