我正在尝试对索引向量和索引矩阵的乘积求和,如下所示:
k=[0:1:N-1]
n=[0:1:N-1]
x_n = sin(pi*n)
N = size(x_n,2)
_seqgen(x_n(n)*exp(k*n/N), n, 0..N-1)
但我收到错误:
error: subscript indices must be either positive integers or logicals
我在这里缺少什么?
编辑:我刚刚意识到我错过了 _plus 函数来对生成的序列求和。它应该是这样的:
k=[0:1:N-1]
n=[0:1:N-1]
x_n = sin(pi*n)
N = size(x_n,2)
_plus(_seqgen(x_n(n)*exp(k*n/N), n, 0..N-1))
虽然我仍然得到同样的错误...
最佳答案
错误消息解释了错误所在:您试图用一个不是正整数或逻辑的数字来索引数组。代码中唯一的数组索引是 x_n(n)
。果然,n=[0:1:N-1]
行表明索引 n
不是正数,因为 0
不是正数。类(class): MATLAB/Octave 总是从 1 开始索引。 我确实建议您阅读一些教程,因为这是您需要了解的基本内容。
关于matlab - Octave 误差 : subscript indices must be either positive integers or logicals,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/15304436/