qrisp.QuantumCircuit.measure#

QuantumCircuit.measure(qubits: QubitLike, clbits: ClbitLike | None = None) None[source]#

Append a measurement instruction to the circuit.

For each qubit in qubits a Measurement operation is added that stores the binary outcome in the corresponding entry of clbits. When clbits is omitted the required classical bits are allocated automatically.

Parameters:
qubitsQubitLike

The qubit(s) to measure. A single Qubit object or integer index measures one qubit; any sequence (list, tuple, range, QuantumVariable, …) measures each element independently.

clbitsClbitLike or None, optional

The classical bit(s) that receive the measurement results. When None (default), fresh classical bits are created automatically (one per qubit being measured).

Examples

In this example, we measure a single qubit. One classical bit is allocated automatically:

>>> from qrisp import QuantumCircuit
>>> qc = QuantumCircuit(1)
>>> qc.x(0)
>>> qc.measure(0)
>>> len(qc.clbits)
1

Now we measure several qubits at once. One classical bit is created per qubit:

>>> qc = QuantumCircuit(3)
>>> qc.measure([0, 1, 2])
>>> len(qc.clbits)
3

Finally, we provide explicit classical bits to control where results are stored:

>>> qc = QuantumCircuit(2)
>>> cb0, cb1 = qc.add_clbit(), qc.add_clbit()
>>> qc.measure(0, cb0)
>>> qc.measure(1, cb1)
>>> qc.clbits == [cb0, cb1]
True