フィルターのクリア

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

1 回表示 (過去 30 日間)
Noru
Noru 2013 年 2 月 7 日
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 件のコメント
Jan
Jan 2013 年 2 月 7 日
編集済み: Jan 2013 年 2 月 7 日
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?

サインインしてコメントする。

採用された回答

Jan
Jan 2013 年 2 月 7 日
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 件のコメント
Noru
Noru 2013 年 2 月 8 日
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..

サインインしてコメントする。

その他の回答 (0 件)

カテゴリ

Help Center および File ExchangeCreating and Concatenating Matrices についてさらに検索

Community Treasure Hunt

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

Start Hunting!

Translated by