diff --git a/qiskit/circuit/measure.py b/qiskit/circuit/measure.py index 02f0bf4f34aa..50cd8cd40326 100644 --- a/qiskit/circuit/measure.py +++ b/qiskit/circuit/measure.py @@ -37,3 +37,25 @@ def broadcast_arguments(self, qargs, cargs): yield qarg, [each_carg] else: raise CircuitError("register size error") + +class GroupingMeasure(Instruction): + """ + Quantum measurement for multiple qubits instruction + in the computational basis. + """ + + def __init__(self, num_qubits): + super().__init__("measure", num_qubits, num_qubits, []) + + def broadcast_arguments(self, qargs, cargs): + qarg = qargs[0] + carg = cargs[0] + + if len(carg) == len(qarg): + for qarg, carg in zip(qarg, carg): + yield [qarg], [carg] + elif len(qarg) == 1 and carg: + for each_carg in carg: + yield qarg, [each_carg] + else: + raise CircuitError("register size error") \ No newline at end of file