主要内容

randsample

量子状态的随机采样

自 R2023a 起

安装要求:此功能需要 MATLAB Support Package for Quantum Computing

说明

m = randsample(state,numShots) 以指定的采样数对输入量子状态进行随机采样,并以 QuantumMeasurement 对象形式返回所得仿真测量值。

示例

示例

全部折叠

创建一个量子电路,它包含哈达玛门和受控 X 门,用于纠缠两个量子位。

gates = [hGate(1); cxGate(1,2)];
c = quantumCircuit(gates);

使用默认初始状态对电路进行仿真,其中每个量子位处于 |0 状态。

state = simulate(c)
state = 

  QuantumState with properties:

    BasisStates: [4×1 string]
     Amplitudes: [4×1 double]
      NumQubits: 2

显示电路的最终状态。

formula(state)
ans = 

    "0.70711 * |00> +
     0.70711 * |11>"

随机对最终状态进行 100 次采样,以仿真在运行电路后量子状态的测量。

m = randsample(state,100)
m = 

  QuantumMeasurement with properties:

    MeasuredStates: [2×1 string]
            Counts: [2×1 double]
     Probabilities: [2×1 double]
         NumQubits: 2

显示测量状态的计数和估计概率。

table(m.Counts,m.Probabilities,m.MeasuredStates, ...
    VariableNames=["Counts","Probabilities","States"])
ans =

  2×3 table

    Counts    Probabilities    States
    ______    _____________    ______

      56          0.56          "00" 
      44          0.44          "11" 

输入参数

全部折叠

量子状态,指定为 QuantumState 对象。

仿真采样数,指定为正整数标量。

提示

  • randsample 函数使用当前随机数生成器,即作为 randrandirandn 基础的同一生成器。因此,每次调用 randsample 都会返回不同结果。您可以使用 rng 控制这一共享的随机数生成器。

  • 迄今为止,在量子处理单元 (QPU) 设备上,实际测量值可能比对 QuantumState 对象进行随机采样得到的测量值含有更多噪声。有关详细信息,请参阅Run Circuit and Make Measurement

版本历史记录

在 R2023a 中推出