Updates the attributes M, Iv, and Dv of instr according to the conversion type: convType.
(instr, dimDm, dimCm, convType)
| 1459 | return instr.detector |
| 1460 | |
| 1461 | def _getSubMatrices(instr, dimDm, dimCm, convType): |
| 1462 | """ |
| 1463 | Updates the attributes M, Iv, and Dv of instr according to the conversion |
| 1464 | type: convType. |
| 1465 | """ |
| 1466 | convType = convType.lower() |
| 1467 | if convType == 'dd': |
| 1468 | instr.M = instr.M.extract([i for i in range(0, dimDm)],[i for i in range(0, dimDm)]) |
| 1469 | instr.Iv = sp.Matrix(instr.Iv[0: dimDm]) |
| 1470 | instr.Dv = sp.Matrix(instr.Dv[0: dimDm]) |
| 1471 | elif convType == 'dc': |
| 1472 | instr.M = instr.M.extract([i for i in range(0, dimDm)],[i for i in range(dimDm, dimDm + dimCm)]) |
| 1473 | instr.Iv = sp.Matrix(instr.Iv[0: dimDm]) |
| 1474 | instr.Dv = sp.Matrix(instr.Dv[dimDm: dimDm + dimCm]) |
| 1475 | elif convType == 'cd': |
| 1476 | instr.M = instr.M.extract([i for i in range(dimDm, dimDm+dimCm)], [i for i in range(0, dimDm)]) |
| 1477 | instr.Iv = sp.Matrix(instr.Iv[dimDm: dimDm + dimCm]) |
| 1478 | instr.Dv = sp.Matrix(instr.Dv[0: dimDm]) |
| 1479 | elif convType == 'cc': |
| 1480 | instr.M = instr.M.extract([i for i in range(dimDm, dimDm+dimCm)], [i for i in range(dimDm, dimDm + dimCm)]) |
| 1481 | instr.Iv = sp.Matrix(instr.Iv[dimDm: dimDm + dimCm]) |
| 1482 | instr.Dv = sp.Matrix(instr.Dv[dimDm: dimDm + dimCm]) |
| 1483 | elif convType == 'all': |
| 1484 | pass |
| 1485 | else: |
| 1486 | print("Warning: unknown conversion type: %s, assuming: 'all'."%(convType)) |
| 1487 | return instr |
| 1488 | |
| 1489 | ################################################################################# |
| 1490 |