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

Arrays MATLAB中两个不等数组的匹配长度?,arrays,matlab,matrix,max,size,Arrays,Matlab,Matrix,Max,Size,假设我有3个不同长度的数组: A[123456];B[1 2 4],C[0 1 5 6] 三个阵列的最大长度为6。 所以我希望B和C也有6个元素。此外,新数组最后填充的元素应该是原始数组的最后一个元素 最后,新的B应该像[1 2 4 4 4],C应该像[0 1 5 6 6 6],我如何实现这一点? 非常感谢 您可以使用MATLAB的索引操作符来实现这一点。如果指定的元素超过数组的末尾,则MATLAB将使数组增长。对于本例中的向量,您只需要指定一个下标,因为扩展数组的方向并不模糊 我会这样做-这并

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

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

最后,新的B应该像[1 2 4 4 4],C应该像[0 1 5 6 6 6],我如何实现这一点?
非常感谢

您可以使用MATLAB的索引操作符来实现这一点。如果指定的元素超过数组的末尾,则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)

您可以使用MATLAB的索引操作符来实现这一点。如果指定的元素超过数组的末尾,则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)

非常感谢兄弟!非常感谢兄弟!