如何在MATLAB中添加不同长度的向量

如何在MATLAB中添加不同长度的向量,matlab,Matlab,我正在尝试执行以下操作: 假设我有: x1=[7]; x2=[3 4]; x3=[1 -1 5]; x4=[2 5 -1 3]; 我想把它们加在一起。 我知道不可能添加不同维度的向量,但我试图实现的是一个新的向量,具有: v=[2 5+1 -1-1+3 3+5+4+7]; 我尝试用零填充相关向量,以获得: x1=[0 0 0 7]; x2=[0 0 3 4]; x3=[0 1 -1 5]; x4=[2 5 -1 3]; 然后添加是自然的,但找不到方法来添加。 当然,我在寻找一种迭代方法,这

我正在尝试执行以下操作:
假设我有:

x1=[7];
x2=[3 4];
x3=[1 -1 5];
x4=[2 5 -1 3];
我想把它们加在一起。
我知道不可能添加不同维度的向量,但我试图实现的是一个新的向量,具有:

v=[2 5+1 -1-1+3 3+5+4+7];
我尝试用零填充相关向量,以获得:

x1=[0 0 0 7];
x2=[0 0 3 4];
x3=[0 1 -1 5];
x4=[2 5 -1 3];
然后添加是自然的,但找不到方法来添加。

当然,我在寻找一种迭代方法,这意味着,每个向量席是迭代次数的结果,其中迭代次数n是预先知道的。(在上面的例子中n=4)

我的第一个想法是

x1 = [zeros(1, 4 - length(x1)) x1];

在这里,您可以用max(所有数组)替换上行中的4。如果你的数组是在单元数组中,你应该能够很容易地将其调整为循环。

也许我看错了,但向量加法似乎没有一个容易识别的模式。你是对的,对不起。。。让我编辑我的帖子…每个向量是否比前一个向量多了一个元素?为什么不将向量存储为单元数组的单元呢?也就是说,
x{1}
x{2}
等。这将更容易避免
eval
每个向量都与上一次迭代中计算的向量完全不同。使用此解决方案可获得包含数据的正则矩阵:。您希望左侧为零,而不是右侧为南,因此必须使用
fcn=@(x)[zeros(1,maxSize numel(x))x]。最后,使用
sum
来获得总和。太好了,这就是我要找的。