Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to fix "TypeError: len() of unsized object"

I am getting:

TypeError: len() of unsized object

after running the following script:

from numpy import *

v=array(input('Introduce un vector v: '))
u=array(input('Introduce un vector u: '))

nv= len(v)
nu= len(u)

diferenza= 0; i=0

if nv==nu:

    while i<nv:
        diferenza=diferenza + ((v[i+1]-u[i+1]))**2

    modulo= sqrt(diferenza)
    print('Distancia', v)
else:
    print('Vectores de diferente dimensión')

How can I fix this?

like image 981
Xabier Garcia Andrade Avatar asked Oct 19 '16 21:10

Xabier Garcia Andrade


1 Answers

Use the arrays' size attribute instead:

nv = v.size
nu = u.size

You also probably want to use numpy.fromstring to take and convert the input string into an array:

>>> v = np.fromstring(input('enter the elements of the vector separated by comma: '), dtype=int, sep=',')
enter the elements of the vector separated by comma: 1, 2, 3
>>> v
array([1, 2, 3])
>>> len(v)
3
>>> v.size
3
like image 151
Moses Koledoye Avatar answered Oct 18 '22 16:10

Moses Koledoye