Matlab编辑器问题,一个错误



我遇到了这样的问题,当我在主屏幕中运行下面编写的代码时,matlab不会给我带来问题。

然而,如果我在编辑器中编写它,它就会抱怨它是无效的语法。你能告诉我我做错了什么吗?

Ques1 = { @(data) mean(data)  @(data) std(data) };
mean = Ques1 {1} (data(:,1)) # runs perfectly on the main compiler screen 

在我的编辑器页面上,编译器在=符号上抱怨可能缺少一个括号。然而,我不明白为什么它能在matlab上逐行编译!!

这两行代码是绝对正确的。在代码的某个地方,您忘记了左开方括号,例如[,{,(

编辑 现在我明白g24l在说什么了!是的,这很可能是你问题的罪魁祸首。

不确定你使用的是什么版本的matlab,但当我运行一个非常简单的脚本时:

data = kron(1:25,transpose(1:25)); % very simple 2D matrix of data;
Ques1 = { @(data) mean(data)  @(data) std(data) };
mean1 = Ques1 {1} (data(:,1)) % runs perfectly on the main compiler screen

它在R2007B和R2009B上运行良好,您使用的是旧版本还是新版本?我怀疑你的剧本中还有其他问题。此外,根据Mathworks推荐的编程过程,我鼓励您不要将变量或函数命名为与另一个变量或函数相同的名称。在这个例子中,我指的是mean = ...。很容易把这些东西搞混,然后出现严重的问题。如果你需要更多的帮助,请随时发布更多的脚本。希望这能有所帮助!

我现在无法访问Matlab,所以我无法测试它,但我觉得你的语法不正确。试试这个:

Ques1 = {@(data)mean, @(data)std};
mean = Ques1{1}(data(:,1))

如果你在调试器中按自己的方式运行它,它会说你的单元数组中有多少元素?

相关内容

最新更新