匹配MATLAB中两个不等数组的长度?

Naw*_*waz 1 arrays size matlab max matrix

假设我有 3 个不同长度的数组: A[1 2 3 4 5 6]; B[1 2 4], C[0 1 5 6]

三个数组的最大长度是 6。所以我希望 B 和 C 也有 6 个元素。此外,新数组的最后一个“填充”元素应该是原始数组的最后一个元素

最后,新 B 应该看起来像 [1 2 4 4 4 4],C 应该看起来像 [0 1 5 6 6 6],我该如何实现?非常感谢!

Edr*_*ric 5

您可以使用 MATLAB 的索引运算符执行此操作。如果您分配给end数组的之后的元素,MATLAB 将增大数组。对于向量(如本例),您只需要指定一个下标,因为扩展数组的方向没有歧义。

我会这样做 - 这并不假设您预先知道哪个数组是最大的。我numel用来计算每个向量中的元素数。我还依赖于这样一个事实,即对于其中一个数组,end+1:maxLen是一个空范围,因此在这种情况下不会进行任何修改。

maxLen = max([numel(A), numel(B), numel(C)]);
A(end+1:maxLen) = A(end)
B(end+1:maxLen) = B(end)
C(end+1:maxLen) = C(end)
Run Code Online (Sandbox Code Playgroud)