Azzera filtri
Azzera filtri

rectify the error in the code below

4 visualizzazioni (ultimi 30 giorni)
Elysi Cochin
Elysi Cochin il 17 Nov 2014
Commentato: Guillaume il 18 Nov 2014
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...

Risposta accettata

Guillaume
Guillaume il 17 Nov 2014
The error is with the multiplication. Is your w scalar?

Più risposte (1)

Roger Stafford
Roger Stafford il 17 Nov 2014
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 Commento
Guillaume
Guillaume il 18 Nov 2014
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.

Accedi per commentare.

Tag

Non è stata ancora inserito alcun tag.

Community Treasure Hunt

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

Start Hunting!

Translated by