# Encoding complex data

**URL:** <https://discuss.pennylane.ai/t/encoding-complex-data/903>\
**Category:** PennyLane Help\
**Created:** [March 8, 2021, 3:48pm UTC](https://discuss.pennylane.ai/t/encoding-complex-data/903 "2021-03-08T15:48:42Z")\
**Posts on this page:** 7\
**Page:** 1

<div class="post-metadata">

**Author:** ![sassan\_moradi](https://yyz2.discourse-cdn.com/flex012/user_avatar/discuss.pennylane.ai/sassan_moradi/32/422_2.png) [@sassan\_moradi](https://discuss.pennylane.ai/u/sassan_moradi)\
**Post date:** [March 8, 2021, 3:48pm UTC](https://discuss.pennylane.ai/t/encoding-complex-data/903/1 "2021-03-08T15:48:42Z")

</div>

Hi everybody.

Let’s consider that i have complex data. how can i encode them with MÖttÖnen preparation method? How can i define angles for complex data? is it possible to do it or not?

Many thanks for your useful answers in advance.

---

<div class="post-metadata">

**Author:** ![Tom\_Bromley](https://yyz2.discourse-cdn.com/flex012/user_avatar/discuss.pennylane.ai/tom_bromley/32/129_2.png) [@Tom\_Bromley](https://discuss.pennylane.ai/u/Tom_Bromley)\
**Post date:** [March 8, 2021, 6:39pm UTC](https://discuss.pennylane.ai/t/encoding-complex-data/903/2 "2021-03-08T18:39:01Z")

</div>

Hi @sassan_moradi!

The input to [MottonenStatePreparation](https://pennylane.readthedocs.io/en/stable/code/api/pennylane.templates.state_preparations.MottonenStatePreparation.html) applied to `N` wires should be a complex, normalized vector of length `2 ** N`. For example, if you have two qubits then you can encode a 4-dimensional complex datapoint.

Here is an example:

```python
import pennylane as qml
from pennylane import numpy as np

dev = qml.device("default.qubit", wires=2)

dat = np.random.random(4) + 1j * np.random.random(4)
dat /= np.sqrt(np.sum(np.abs(dat) ** 2))

@qml.qnode(dev)
def f(dat):
    qml.templates.MottonenStatePreparation(dat, wires=range(2))
    return qml.state()

dat_out = f(dat)

abs(np.vdot(dat, dat_out)) ** 2

```

Note that the prepared state `dat_out` is the same as `dat` up to a global phase.

---

<div class="post-metadata">

**Author:** ![sassan\_moradi](https://yyz2.discourse-cdn.com/flex012/user_avatar/discuss.pennylane.ai/sassan_moradi/32/422_2.png) [@sassan\_moradi](https://discuss.pennylane.ai/u/sassan_moradi)\
**Post date:** [March 9, 2021, 7:19am UTC](https://discuss.pennylane.ai/t/encoding-complex-data/903/3 "2021-03-09T07:19:37Z")

</div>

many many thanks for your useful answer.

---

<div class="post-metadata">

**Author:** ![Tom\_Bromley](https://yyz2.discourse-cdn.com/flex012/user_avatar/discuss.pennylane.ai/tom_bromley/32/129_2.png) [@Tom\_Bromley](https://discuss.pennylane.ai/u/Tom_Bromley)\
**Post date:** [March 9, 2021, 12:33pm UTC](https://discuss.pennylane.ai/t/encoding-complex-data/903/4 "2021-03-09T12:33:52Z")

</div>

No problem, let us know if you have any difficulties! Thanks

---

<div class="post-metadata">

**Author:** ![sassan\_moradi](https://yyz2.discourse-cdn.com/flex012/user_avatar/discuss.pennylane.ai/sassan_moradi/32/422_2.png) [@sassan\_moradi](https://discuss.pennylane.ai/u/sassan_moradi)\
**Post date:** [March 9, 2021, 1:19pm UTC](https://discuss.pennylane.ai/t/encoding-complex-data/903/5 "2021-03-09T13:19:43Z")

</div>

i run your example. I encountered this error message:  
AttributeError: module ‘pennylane’ has no attribute ‘state’.

---

<div class="post-metadata">

**Author:** ![Tom\_Bromley](https://yyz2.discourse-cdn.com/flex012/user_avatar/discuss.pennylane.ai/tom_bromley/32/129_2.png) [@Tom\_Bromley](https://discuss.pennylane.ai/u/Tom_Bromley)\
**Post date:** [March 9, 2021, 2:10pm UTC](https://discuss.pennylane.ai/t/encoding-complex-data/903/6 "2021-03-09T14:10:06Z")

</div>

This may be a case of upgrading PennyLane, try running  
`pip install pennylane --upgrade`

---

<div class="post-metadata">

**Author:** ![sassan\_moradi](https://yyz2.discourse-cdn.com/flex012/user_avatar/discuss.pennylane.ai/sassan_moradi/32/422_2.png) [@sassan\_moradi](https://discuss.pennylane.ai/u/sassan_moradi)\
**Post date:** [March 10, 2021, 7:13am UTC](https://discuss.pennylane.ai/t/encoding-complex-data/903/7 "2021-03-10T07:13:27Z")

</div>

many thanks again, Tom. It works “pip install pennylane --upgrade”.
