在matlab中更改向量的索引

在matlab中更改向量的索引,matlab,Matlab,假设有一个向量 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函数来完成这项工作吗?(a)这不是通常的matlab索引,您不需要使用括号来索引,而是使用括号。(b) 不,这是不可能的,但您可以使

假设有一个向量

 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函数来完成这项工作吗?

(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
by Gnovice向您展示了一种如果您真的想更改基本索引的方法。但老实说,这将是一个非常可怕的想法,除非你有一个非常令人信服的理由这样做。只要坚持使用单基索引。

(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
by Gnovice向您展示了一种如果您真的想更改基本索引的方法。但老实说,这将是一个非常可怕的想法,除非你有一个非常令人信服的理由这样做。只要坚持使用1-base索引即可