Matlab 如何定义第一个元素为';tn=0?

Matlab 如何定义第一个元素为';tn=0?,matlab,vector,indexing,Matlab,Vector,Indexing,我试图在离散时间内卷积两个向量。从数值上讲,我得到了正确的答案,但是当我用干图绘制它们时,我找不到一种方法来表示n从-3开始,而不是0。 比如说, x = [0 1 2 3 4 5 6]; h = [-1 0 1]; y = conv(x,h); n = [-3;5] stem(n,y) 将输出一个从n=0开始的干图。 我希望干图从n=-3开始。 x的n=0索引处于值(2),但是Matlab认为x的n=0索引处于值(0) 我能找到的只是命令circshift,这不是我想要的。Replace n

我试图在离散时间内卷积两个向量。从数值上讲,我得到了正确的答案,但是当我用干图绘制它们时,我找不到一种方法来表示n从
-3
开始,而不是
0
。 比如说,

x = [0 1 2 3 4 5 6];
h = [-1 0 1];
y = conv(x,h);
n = [-3;5]
stem(n,y)
将输出一个从n=0开始的干图。 我希望干图从
n=-3
开始。
x
n=0
索引处于
值(2)
,但是Matlab认为
x
n=0
索引处于
值(0)

我能找到的只是命令
circshift
,这不是我想要的。

Replace

n = [-3;5]
与:

我想这会解决你的问题。

而不是在
n=[-3;5]您需要使用。这将创建一个从
-3
5
的范围。就是应该,

n = -3:5;
那会产生什么


分号用于创建矩阵。它允许您创建新行,以便

>> n = [-3;5]
n =
    -3
     5
是一个包含
2
行和
1
列的矩阵。冒号用于创建范围

>> n = -3:5
n =
    -3    -2    -1     0     1     2     3     4     5

这个问题在几个方面令人困惑:1。Matlab数组以索引1而不是0开始,因此您的问题的前提似乎非常奇怪,因为您似乎明确指出错误与Matlab从0开始的索引有关。2.现在还不清楚您想要完成什么-出于某种原因,您希望能够将
y(-1)
之类的内容作为数组中的索引值接受,还是只想更改图形上的标签?
>> n = -3:5
n =
    -3    -2    -1     0     1     2     3     4     5