Re: Newbie question

Collapse
This topic is closed.
X
X
 
  • Time
  • Show
Clear All
new posts
  • Robert Kern

    Re: Newbie question

    Joe Hays wrote:
    I'm a newbie to python. Can anyone tell me why the following little
    program complains about incorrect dimensions?
    >
    <snip>
    >
    import pylab
    from pylab import *
    >
    n = 10; m = 2*n;
    A = randn(m,n);
    b = A*rand(n,1) + 2*rand(m,1);
    >
    </snip>
    >
    The actual error I receive is,
    >
    <snip>
    >
    b = A*rand(n,1) + 2*rand(m,1);
    ValueError: shape mismatch: objects cannot be broadcast to a single
    shape
    >
    </snip>
    >
    This is supposed to be doing a matrix multply of an (m,n)(n,1). This
    results in an (m,1). This should then be able to be added to the
    2*rand(m,1), but, its not for some reason.
    >
    Ideas?
    You will want to ask numpy questions on the numpy mailing list (preferably with
    a subject line a bit more informative with respect to the actual problem).



    In this case, the problem is that * does not do matrix multiplication; it does
    element-wise multiplication. Use dot(A, randn(n,1)) instead.

    --
    Robert Kern

    "I have come to believe that the whole world is an enigma, a harmless enigma
    that is made terrible by our own mad attempt to interpret it as though it had
    an underlying truth."
    -- Umberto Eco

Working...