我正在尝试对索引向量和索引矩阵的乘积求和,如下所示:

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/

10-12 19:19