【问题标题】:How do I define a vector where the first element isn't n= 0?如何定义第一个元素不是 n = 0 的向量?
【发布时间】:2016-01-19 22:38:30
【问题描述】:

我试图在离散时间内对两个向量进行卷积。从数字上讲,我得到了正确的答案,但是当我用茎图绘制它们时,我无法找到一种方法来表明 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 开始。 xn=0 索引位于value(2),但Matlab 认为xn=0 索引位于value(0)

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

【问题讨论】:

  • 这个问题在几个方面令人困惑: 1. Matlab 数组以索引 1 而不是 0 开头,所以你的问题的前提似乎很奇怪,因为你似乎很明确错误必须做使用从 0 开始的 Matlab 索引。 2. 目前还不清楚您想要完成什么 - 您是否出于某种原因希望能够将 y(-1) 之类的东西作为数组中的索引值接受,或者您只是想更改在图上标注?

标签: matlab vector indexing


【解决方案1】:

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

n = -3:5;

会产生

       


分号; 用于创建矩阵。它允许您创建一个新行,所以

>> n = [-3;5]
n =
    -3
     5

是具有2 行和1 列的矩阵。而冒号 : 用于创建范围

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

【讨论】:

    【解决方案2】:

    替换

    n = [-3;5]
    

    与:

    n=linspace(-3,5,length(y));
    

    我想这会解决你的问题。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-07-11
      • 2010-09-20
      • 2022-07-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多