下面是我的代码,其中h和Y是47x1向量。
s = h-Y;
sum = sum(s);我得到了这个错误:
错误: sum(6057.48):下标必须是整数1到(2^31)-1或逻辑
谁能解释一下原因吗?
发布于 2017-05-02 22:28:37
正如萨达尔乌萨马在注释中提到的,当您还想使用内置函数sum时,不能使用变量名sum。
默认情况下,sum是一个函数,用于您预期的脚本中。
例如,在Octave中,允许对内置函数进行阴影。
sum = 4; % Now there is a workspace variable, sum, with the value 4当您这样做时,关键字现在代表变量,而不是函数。最好不要覆盖默认函数,即使您不打算在脚本中使用它们!
要消除阴影,只需清除变量,
clear sum % Now it should behave as expected.在继续之前,必须清除变量的原因是与工作区有关。即使在程序退出之后,变量sum仍然保留在您的工作区中,所以当您再次运行它时(即使您选择了一个新的变量名),您仍然已经更改了sum的解释方式。通过清除变量,Octave将其设置为从工作区中删除时的默认行为。
摘要:使用不同的变量名。
s = h-Y;
mysum = sum(s); % mysum isn't a built-in, so no clashes here!https://stackoverflow.com/questions/43744125
复制相似问题