rectify the error in the code below

number of rows in b = 10;
I want to subtract each row of b with a i get... number of columns in both 'a' and 'b' are 128....
on some evaluation i get a as zero... that time when i execute the below code i get error
for i = 1 : size(b,1)
X(i,1) = sum(w * ((a(1,:) - b(i,:)).^2) / (a(1,:) + b(i,:)));
end
my error is
??? Error using ==> mtimes
Inner matrix dimensions must agree.
Error in ==> DemoFile at 147
X(i,1) = sum(w * ((a(1,:) - b(i,:)).^2) / (a(1,:) + b(i,:)));
why am i getting the error... please can someone rectify it... i want the code to work even if the value of a is zero and sort the matrix X....
please can someone rectify it for me...

 採用された回答

Guillaume
Guillaume 2014 年 11 月 17 日

1 投票

The error is with the multiplication. Is your w scalar?

その他の回答 (1 件)

Roger Stafford
Roger Stafford 2014 年 11 月 17 日

2 投票

If 'w' has more than one column, you will get an error because
w * ((a(1,:) - b(i,:)).^2)
is performed before the division.
However, I suspect you meant to write
w .* ((a(1,:) - b(i,:)).^2) ./ (a(1,:) + b(i,:))
if 'w' is a row vector with 128 columns or
w * ((a(1,:) - b(i,:)).^2) ./ (a(1,:) + b(i,:))
if it is a scalar.

1 件のコメント

Guillaume
Guillaume 2014 年 11 月 18 日
I thought at first that the division was meant to be element-wise as well. But the result is assigned to a scalar ( X(i, 1)), so it has to be a matrix division.

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

カテゴリ

ヘルプ センター および File ExchangeSpecialized Power Systems についてさらに検索

タグ

タグが未入力です。

質問済み:

2014 年 11 月 17 日

コメント済み:

2014 年 11 月 18 日

Community Treasure Hunt

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

Start Hunting!

Translated by