首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >下标错误: sum = sum(s)

下标错误: sum = sum(s)
EN

Stack Overflow用户
提问于 2017-05-02 17:44:23
回答 1查看 759关注 0票数 2

下面是我的代码,其中hY47x1向量。

代码语言:javascript
复制
s = h-Y;
sum = sum(s);

我得到了这个错误:

错误: sum(6057.48):下标必须是整数1到(2^31)-1或逻辑

谁能解释一下原因吗?

EN

回答 1

Stack Overflow用户

发布于 2017-05-02 22:28:37

正如萨达尔乌萨马在注释中提到的,当您还想使用内置函数sum时,不能使用变量名sum

默认情况下,sum是一个函数,用于您预期的脚本中。

例如,在Octave中,允许对内置函数进行阴影。

代码语言:javascript
复制
sum = 4; % Now there is a workspace variable, sum, with the value 4

当您这样做时,关键字现在代表变量,而不是函数。最好不要覆盖默认函数,即使您不打算在脚本中使用它们!

要消除阴影,只需清除变量,

代码语言:javascript
复制
clear sum % Now it should behave as expected.

在继续之前,必须清除变量的原因是与工作区有关。即使在程序退出之后,变量sum仍然保留在您的工作区中,所以当您再次运行它时(即使您选择了一个新的变量名),您仍然已经更改了sum的解释方式。通过清除变量,Octave将其设置为从工作区中删除时的默认行为。

摘要:使用不同的变量名。

代码语言:javascript
复制
s = h-Y;
mysum = sum(s); % mysum isn't a built-in, so no clashes here!
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43744125

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档