问题描述
我正在尝试在 Octave 中创建一个 self.begin = node
,但出现了一个奇怪的错误。
这是我的代码:
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);
我想知道为什么会发生这种情况。希望这不是因为我使用 Octave 而不是 Matlab。实际上那是...它适用于 MATLAB Online。
解决方法
该错误的解释非常清楚: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');