(b) Complete the code below to apply the sum X+Z to the state |0> (on the main register). You can invoke `add_two_unitaries(U, V)`

from the last challenge, and access the matrix form of the Paulis using, e.g., `qml.PauliX.matrix`

.

```
@qml.qnode(dev)
def X_plus_Z():
"""Apply X + Z to |0> and return the state."""
##################
# YOUR CODE HERE #
##################
U = qml.PauliX.matrix
V = qml.PauliZ.matrix
add_two_unitaries(U,V)
return qml.state()
print("The amplitudes on the main register are proportional to", X_plus_Z()[:2], ".")
```

Error: ‘function’ object has no attribute ‘wires’

Where exactly do I need to add the `wires`

, I just invoked the `add_two_unitaries`

from the previous code, which was correct as it was accepted.

Where I’m getting it wrong?

Hey @Monit_Sharma! Welcome to the forum !

The `.matrix`

method isn’t static, meaning that the object has to actually be created and *then* `.matrix`

can be called:

```
U = qml.PauliX(0).matrix()
V = qml.PauliZ(0).matrix()
```

Be careful, though! Because the method isn’t static, if you do this within a QNode those operators will be queued! Here’s an example where doing this (might) unintentionally puts those operations in a circuit:

```
dev = qml.device("default.qubit", wires = 1)
@qml.qnode(dev)
def circuit():
U = qml.PauliX(0).matrix()
V = qml.PauliZ(0).matrix()
return qml.state()
print(qml.draw(circuit)())
'''
0: ──X──Z─┤ State
'''
```

I recommend that you use `compute_matrix()`

instead — it is a static method, so the operator doesn’t need to be created and, therefore, you don’t have this unintentional behaviour.

```
U = qml.PauliX.compute_matrix()
V = qml.PauliZ.compute_matrix()
```