【问题标题】:Invalid name argument in Octave ztestOctave ztest 中的名称参数无效
【发布时间】:2021-04-09 04:34:12
【问题描述】:

我正在尝试在 Octave 中创建 Z-test,但出现了一个奇怪的错误。

这是我的代码:

A =[ 7 7 4 5 9 9
     4 12 8 1 8 7
     3 13 2 1 17 7
     12 5 6 2 1 13
     14 10 2 4 9 11
     3 5 12 6 10 7 ];

x = A(:)';
n = length(x);
fprintf(' Volume %d \n',n)
med = mean(x);
fprintf(' Sample mean %f\n',med)
sigma = 5;
m0 = 9;

type = -1; %left tailed test

alpha1 = 0.05; %significance level
alpha2 = 0.01;

fprintf('\n')
fprintf('SIGNIFICANCE LEVEL %f:\n',alpha1)
[h1, p1, ci1, zstat1] = ztest(x, m0, sigma, alpha1, type); 

错误是:

error: Invalid Name argument.
error: called from
    ztest at line 70 column 9
    Pb1a at line 26 column 23

我想知道为什么会这样。希望这不是因为我使用的是 Octave 而不是 Matlab。实际上就是……它可以在 MATLAB Online 中使用。

【问题讨论】:

    标签: matlab statistics octave


    【解决方案1】:

    这个错误很容易解释:Octave 不支持您使用的语法(五个数字参数)。事实上,在 Matlab 中也没有记录该语法,并且似乎只是为了向后兼容而支持,如 ztest 源代码所示:

    if nargin>=4 <p>
       if isnumeric(varargin{1})
           % Old syntax
           %   ZTEST(X,M,SIGMA,ALPHA,TAIL,DIM)
    [...]
    

    解决方案是使用Matlab 和Octave 官方支持的语法,将第三个以外的参数指定为parameter, value 对:

    [h1, p1, ci1, zstat1] = ztest(x, m0, sigma, 'alpha', alpha1, 'tail', 'left');
    

    【讨论】:

    • 谢谢! octave的文档没有解释得那么详细
    猜你喜欢
    • 2010-11-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多