Matlab编辑器问题,一个bug?

时间:2012-02-25 23:22:00

标签: matlab

我遇到这个问题,当我在主屏幕上运行下面编写的代码时,matlab并没有给我一个问题。

但是,如果我在编辑器中编写它,那么它会抱怨它是无效的语法。 你能告诉我我做错了什么或者这是一个错误吗?

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

在我的编辑器页面上,编译器在=符号上抱怨可能的括号丢失。但是我不明白为什么它在matlab上逐行编译工作!!

3 个答案:

答案 0 :(得分:3)

这两行代码绝对正确。你代码中的某个地方你已经忘记了一个打开的左括号,例如[,{,(

答案 1 :(得分:2)

编辑 现在我明白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 = ...。很容易让这些东西混淆然后有令人讨厌的问题。如果您需要更多帮助,请随时发布更多您的脚本。希望这有帮助!

答案 2 :(得分:0)

我目前无法访问Matlab,因此我无法对此进行测试,但您的语法对我来说并不合适。试试这个:

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

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