Matlab中的Shapiro Wilk测试

use*_*689 6 matlab

我有一个包含100个数值的数组A. 我想测试A中的数据是否正常使用Shapiro-Wilk测试进行分发.

B = stats::swGOFT(A);在Matlab命令行上写道,我有错误:

??? B  = stats::swGOFT(A) Error: Unexpected MATLAB operator.
               |
Run Code Online (Sandbox Code Playgroud)

有人可以帮我,我怎样才能stats::swGOFT()正确使用?

sun*_*ica 1

swGOFT 是一个 MuPAD 库,因此您必须从 MuPAD 内部执行它,而不是从 MATLAB 命令行本身执行。在 MATLAB 命令行中,键入mupad并按 Enter 键。您将获得所谓的 MuPAD 笔记本,您可以在其中输入命令。应该B := stats::swGOFT(A)像 Shai 在评论中提到的那样。

编辑:要从AMatlab 工作区转移到 MuPAD 工作区,首先必须将其更改为“sym”类型的对象。步骤是:

  1. 使用命令从 A 创建一个 sym 对象S = sym(A)
  2. 创建一个名为 MuPAD 笔记本note = mupad
  3. 将变量发送SnotewithsetVar(note, S)
  4. S在 MuPAD 命令中使用而不是A,例如:B := stats::swGOFT(S)

  • 我确信我昨天检查了这些步骤,但也许我使用了错误的变量。但我没有得到同样的错误,我得到“错误:某些数据的类型无效。” 这个 Matlab-Mupad 界面对我来说是相当模糊的区域,所以我不知道如何纠正这个问题。看起来函数 feval 可能是解决方案,但它也会在 Matlab 命令行上产生相同的“无效类型”错误。对不起。 (2认同)