Clear Filters
Clear Filters

How to solve an equation from 2 different matrix..?

1 view (last 30 days)
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..
  1 Comment
Jan
Jan on 7 Feb 2013
Edited: Jan on 7 Feb 2013
Well formatted text and code, very nice formula, shown what has been tried already - this is simply a good question. +1
Does the value of B matter anywhere in the equation?

Sign in to comment.

Accepted Answer

Jan
Jan on 7 Feb 2013
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))
  1 Comment
Noru
Noru on 8 Feb 2013
I already fix my vector.
I think i found where is my mistake, I didn't use
x = 0;
n = size(A, 1);
and in the equation i didn't use "x +..." before sum((...
if i may ask, why i have to add "x +..." before sum((... ?? that thing is really new for me..
thank you for your solution..

Sign in to comment.

More Answers (0)

Categories

Find more on Creating and Concatenating Matrices in Help Center and File Exchange

Community Treasure Hunt

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

Start Hunting!