# Measure

*class *`Measure`

Bases: `qiskit.circuit.instruction.Instruction`

Quantum measurement in the computational basis.

Create new measurement instruction.

## Methods

### add_decomposition

`Measure.add_decomposition(decomposition)`

Add a decomposition of the instruction to the SessionEquivalenceLibrary.

### assemble

`Measure.assemble()`

Assemble a QasmQobjInstruction

### broadcast_arguments

`Measure.broadcast_arguments(qargs, cargs)`

Validation of the arguments.

**Parameters**

**qargs**(*List*) – List of quantum bit arguments.**cargs**(*List*) – List of classical bit arguments.

**Yields**

*Tuple(List, List)* – A tuple with single arguments.

**Raises**

**CircuitError** – If the input is not valid. For example, the number of arguments does not match the gate expectation.

### c_if

`Measure.c_if(classical, val)`

Set a classical equality condition on this instruction between the register or cbit `classical`

and value `val`

.

This is a setter method, not an additive one. Calling this multiple times will silently override any previously set condition; it does not stack.

### copy

`Measure.copy(name=None)`

Copy of the instruction.

**Parameters**

**name** (*str*) – name to be given to the copied circuit, if None then the name stays the same.

**Returns**

**a copy of the current instruction, with the name**

updated if it was provided

**Return type**

### inverse

`Measure.inverse()`

Invert this instruction.

If the instruction is composite (i.e. has a definition), then its definition will be recursively inverted.

Special instructions inheriting from Instruction can implement their own inverse (e.g. T and Tdg, Barrier, etc.)

**Returns**

a fresh instruction for the inverse

**Return type**

**Raises**

**CircuitError** – if the instruction is not composite and an inverse has not been implemented for it.

### is_parameterized

`Measure.is_parameterized()`

Return True .IFF. instruction is parameterized else False

### qasm

`Measure.qasm()`

Return a default OpenQASM string for the instruction.

Derived instructions may override this to print in a different format (e.g. measure q[0] -> c[0];).

### repeat

`Measure.repeat(n)`

Creates an instruction with gate repeated n amount of times.

**Parameters**

**n** (*int*) – Number of times to repeat the instruction

**Returns**

Containing the definition.

**Return type**

**Raises**

**CircuitError** – If n < 1.

### reverse_ops

`Measure.reverse_ops()`

For a composite instruction, reverse the order of sub-instructions.

This is done by recursively reversing all sub-instructions. It does not invert any gate.

**Returns**

**a new instruction with**

sub-instructions reversed.

**Return type**

### soft_compare

`Measure.soft_compare(other)`

Soft comparison between gates. Their names, number of qubits, and classical bit numbers must match. The number of parameters must match. Each parameter is compared. If one is a ParameterExpression then it is not taken into account.

**Parameters**

**other** (*instruction*) – other instruction.

**Returns**

are self and other equal up to parameter expressions.

**Return type**

bool

### validate_parameter

`Measure.validate_parameter(parameter)`

Instruction parameters has no validation or normalization.

## Attributes

### condition_bits

### decompositions

Get the decompositions of the instruction from the SessionEquivalenceLibrary.

### definition

Return definition in terms of other basic gates.

### duration

Get the duration.

### label

Return instruction label

**Return type**

`str`

### name

Return the name.

### num_clbits

Return the number of clbits.

### num_qubits

Return the number of qubits.

### params

return instruction params.

### unit

Get the time unit of duration.