MATLAB: How to solve an equation from 2 different matrix..

loopsmathematicsmatrixvectorization

I have a problem when i want to vectorize an equation, and the elements of the equation contain 2 different matrix with 2 different size. for example :
P Q R S T
A = [ 1 3 21 5 20
2 1 15 1 25
3 5 7 3 21
4 2 6 6 28
5 4 5 7 16
6 2 8 10 18
7 3 12 9 12
8 1 7 4 23];
P P W
(i) (j)
B = [ 1 2 0.5
1 8 0.8
2 1 0.6
3 4 0.22
3 7 0.13
4 5 0.16
4 6 0.58
5 6 0.21
6 7 0.20
7 8 0.66];
and the equation is :
I've already try with this :
n = length(A(:,1));
for i = 1:n
for j = 1:i
x = sum((w*(Q(i)-R(j))*(Q(j)-R(i)))/S(i)-T(j));
end
end
but the result is "Index exceeds matrix dimensions." Does anyone have the solution…??
thanks..

Best Answer

The code for the posted equation:
x = 0;
n = size(A, 1);
for i = 1:n
for j = 1:n
x = x + sum((w*(Q(i)-R(j))*(Q(j)-R(i)))/S(i)-T(j));
end
end
But this does not change anything for the "Index exceeds matrix dimensions" problem. Please post the complete error message and finc out which of the array fails:
dbstop if error
% Then run the program until the error occurres
disp(i)
disp(j)
disp(size(Q))
disp(size(R))
disp(size(S))
disp(size(T))
Related Question