1010# Python 3 compatibility (needs to go here)
1111from __future__ import print_function
1212from __future__ import division
13- from __future__ import absolute_import
1413
1514"""Copyright (c) 2010 by California Institute of Technology
1615All rights reserved.
@@ -170,13 +169,6 @@ def __init__(self, *args):
170169 if zeronum :
171170 den [i ][j ] = ones (1 )
172171
173- # Check for coefficients that are ints and convert to floats
174- # TODO
175- for k in range (den [i ][j ]):
176- if (isinstance (data [i ], (int , np .int ))):
177- den [i ][j ][k ] = float (den [i ][j ][k ])
178-
179-
180172 LTI .__init__ (self , inputs , outputs , dt )
181173 self .num = num
182174 self .den = den
@@ -1338,18 +1330,18 @@ def _cleanPart(data):
13381330
13391331 Returns
13401332 -------
1341- data: correctly formatted transfer function part.
1333+ data: list of lists of ndarrays, with int converted to float
13421334 '''
13431335 valid_types = (int , float , complex , np .number )
13441336 valid_collection = (list , tuple , ndarray )
13451337
13461338 if (isinstance (data , valid_types ) or
13471339 (isinstance (data , ndarray ) and data .ndim == 0 )):
13481340 # Data is a scalar (including 0d ndarray)
1349- return [[array ([data ])]]
1341+ data = [[array ([data ])]]
13501342 elif (isinstance (data , valid_collection ) and
13511343 all ([isinstance (d , valid_types ) for d in data ])):
1352- return [[array (data ]]
1344+ data = [[array (data ) ]]
13531345 elif (isinstance (data , (list , tuple )) and
13541346 isinstance (data [0 ], (list , tuple )) and
13551347 (isinstance (data [0 ][0 ], valid_collection ) and
@@ -1359,10 +1351,19 @@ def _cleanPart(data):
13591351 data [j ] = list (data [j ])
13601352 for k in range (len (data [j ])):
13611353 data [j ][k ] = array (data [j ][k ])
1362- return data
13631354 else :
13641355 # If the user passed in anything else, then it's unclear what
13651356 # the meaning is.
13661357 raise TypeError ("The numerator and denominator inputs must be \
13671358 scalars or vectors (for\n SISO), or lists of lists of vectors (for SISO or \
13681359 MIMO)." )
1360+
1361+ # Check for coefficients that are ints and convert to floats
1362+ for i in range (len (data )):
1363+ for j in range (len (data [i ])):
1364+ for k in range (len (data [i ][j ])):
1365+ if (isinstance (data [i ][j ][k ], (int , np .int ))):
1366+ data [i ][j ][k ] = float (data [i ][j ][k ])
1367+
1368+ return data
1369+
0 commit comments