这是问题 Merge two arrays Matlab 的更新版本
假设现在有两个数组
A1 = [x1 y1
x2 y2
x3 y3
0 0
0 0
0 0
0 0
0 0
]
和
A2 = [a1 b1
a2 b2
a3 b3
a4 b4
0 0
0 0
0 0
]
现在,如何以最短的方式合并A1和A2,使得
A = [x1 y1
x2 y2
x3 y3
a1 b1
a2 b2
a3 b3
a4 b4
0 0]
之前的答案是正确的,它删除了所有零。但是如何通过索引以最短的方式实现这一点,类似于之前的答案?
更新:
这是我尝试过的 使用上一个问题的答案
A=[A1(max(A1')>0,:);A2(max(A2')>0,:)]
A = padarray(A,[size(A1,1) - size(A,1) 0],'post')
这是非常微不足道的,但正如我在问题中明确提到的那样,是否有一个单行答案或一个命令可以像上一个问题一样实现这一点?我的主要目的是扩展我的知识库,了解如何有效地利用 matlab 的索引优势,并为其他遇到这个问题的人提供指南,并提供许多建议。
谢谢, 闪电网络
最佳答案
怎么样:
A2(length(A1),2) = 0;
A = A1 + circshift( A2,find(A1(:,1),1,'last'))
关于arrays - 更新: Merge two arrays Matlab,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23391249/