假设有一个向量
v = [1 2 3];
在MATLAB中。我正在做一个需要非因果信号的信号处理操作,所以我基本上要求的是从-1开始的向量,即我需要这样做
v[-1] = 1
v[0] = 2
v[1] = 3
与通常的MATLAB索引不同,即
v[1] = 1
v[2] = 2
v[3] = 3
有办法做到这一点吗?有人可以写一个matlab函数来完成这个吗?
答案 0 :(得分:3)
(a)这不是通常的MATLAB索引,您不能使用[]
括号来索引您使用()
括号。 (b)不可能,但您可以使用中间翻译功能模拟行为,如:
f = @(x)x+2
现在
v(f(-1)) == v(1) == 1
v(f(0)) == v(2) == 2
v(f(1)) == v(3) == 3
Gnovice的This answer向您展示了如果您真的想要更改基本索引的方法。但老实说,除非你有一个非常令人信服的理由,否则这将是一个非常可怕的想法。坚持使用1-base索引。