Explanation of this statement

1 次查看(过去 30 天)
Ashutosh Shukla
Ashutosh Shukla 2014-6-30
评论: dpb 2014-7-1
for i=1:N
yd(i) = sum(w(i)' .* x(i));
end
Can anyone explain the above statement to me?? I can't understand the use of sum as acc. to me w(i) and x(i) are just numbers and not whole vector. So what's the sum for. Don't doubt the code. It is correct. Just need an explanation.

回答(2 个)

dpb
dpb 2014-6-30
Did you just look and see??? But, yes, you're evaluation is correct of the code as written--now whether that's what was intended is another question.
The above loop could be rewritten as
yd=w' .* x;
Try
all(yd)==all(w' .* x)
to prove it.
  6 个评论
Ashutosh Shukla
Ashutosh Shukla 2014-7-1
no complex numbers in calculation....
simple float(decimal) numbers...
dpb
dpb 2014-7-1
no complex numbers in calculation....
Which I presumed was likely the case but just pointing out there is a difference if w were to be complex.

请先登录,再进行评论。


Robert Cumming
Robert Cumming 2014-6-30
Looking at the code, unless sum is an overloaded function that does something other than the standard inbuild sum - it looks redundant.
To check what sum is - type:
which sum
To check its not doing anything - remove it and run the code again!
  4 个评论
Ashutosh Shukla
Ashutosh Shukla 2014-7-1
Also what is meant by w(i)'. how is it transposing single element??
dpb
dpb 2014-7-1
That's why I brought up the complex number issue; the ' is the complex transpose which has no net effect if the values are real but does if they're not. Newbies often mistakenly use it when the non-complex transpose operator .' is intended instead, which is the case I presumed happened here.
See
doc punct
for details.
As noted, if it's written as a loop on an individual element for a real value it has no effect, just as the sum of a single value is simply the value.

请先登录,再进行评论。

类别

Help CenterFile Exchange 中查找有关 Financial Toolbox 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by