gpt4 book ai didi

python - 使用选项从 Matlab 2017 调用 Python

转载 作者:太空宇宙 更新时间:2023-11-04 04:57:40 24 4
gpt4 key购买 nike

从 MATLAB 调用 Python KS 测试很简单:

foo = py.scipy.stats.ks_2samp(rand(1,50),rand(1,70));

但是,当我以这种方式调用 Anderson-Darling k 样本检验时,出现一个错误:

bar = py.scipy.stats.anderson_ksamp(rand(1,50),rand(1,70));
"Python Error: AxisError: axis -1 is out of bounds for array of dimension 0"

这样会导致另一个错误(这里,我试图设置 midrank = false,认为这可能是之前错误的原因)

bar = py.scipy.stats.anderson_ksamp(rand(1,50),rand(1,70),false);
bar = py.scipy.stats.anderson_ksamp(rand(1,50),rand(1,70),'false');
bar = py.scipy.stats.anderson_ksamp(rand(1,50),rand(1,70),'midrank=false');
"Python Error: TypeError: anderson_ksamp() takes from 1 to 2 positional arguments but 3 were given"

我读过 https://docs.scipy.org/doc/scipy/reference/stats.html以及有关从 Matlab 调用 Python 的旧问题,但旧问题不适用于当前 API。

问题一:如何在MATLAB中调用anderson_ksamp?
问题 2:如何更改此检验的显着性水平?

最佳答案

你弄错了函数参数。

ks_2samp expects接收两个变量向量,所以你在那里很好。

anderson_ksamp expects接收一个系列向量:

scipy.stats.anderson_ksamp (samples, midrank=True)

samples : sequence of 1-D array_like

Array of sample data in arrays.

因此,您应该创建一个元胞数组,其中每个元胞都是一个样本向量,并将其作为第一个参数传递,因为您的样本可能具有不同的维度。

如果要测试两个向量是否来自同一分布,您应该使用常规 anderson 测试,这与 Kolmogorov-Smirnov 2 样本测试非常相似。只需连接值并将其作为单个向量发送。

至于显着性水平,您无法更改它们。它们是针对 10%、5%、2.5% 和 1% 的水平预定义和计算的(至少)。这足以满足任何实际目的。

关于python - 使用选项从 Matlab 2017 调用 Python,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46692482/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com