在MatLab中,Numel是如何通过加零来改变向量的维度的?

li9yvcax  于 2022-11-15  发布在  Matlab
关注(0)|答案(1)|浏览(371)

我试图将两个向量相加;然而,它们的维度不同。仅举个例子(因为我正在执行的操作有1000多个值),向量是:

a = [1 2 3 4 5];
b = [1 2];

因为它们的维度不同,所以我想简单地向向量b添加零,以匹配向量a的维度。
使用代码b(numel(a)) = 0;,我能够做到这一点。然而,我对它的工作原理相当困惑,因为我只在互联网上看到了这段代码。我知道numel(a)等于5,但我不知道代码如何能够在变量b1 2之后添加零,以匹配变量a的维度。
有谁能解释一下吗?

bakd9h0s

bakd9h0s1#

当您设置b(5) = 0时,matlab不能简单地保留中间元素b(3:4)为空,因此它们将为零。如果执行b(numel(a)) = 1,则中间元素仍将填充为零。
请记住,这是一条捷径,只有在您知道ba短的情况下才有效。否则,您将把b的元素设置为0,这可能不是您想要的。

相关问题