我想根据时间值合并2个向量.这应该是这样的(第1列=时间,第2列=实际值):
A =
1 234
3 121
4 456
6 6756
B =
2 435
5 90
10 365
Run Code Online (Sandbox Code Playgroud)
结果:
C =
1 234
2 435
3 121
4 456
5 90
6 6756
10 365
Run Code Online (Sandbox Code Playgroud)
在Matlab中有没有一种优雅的方法来实现这一点?
这是一个简单的单行:
C = sortrows([A;B])
C =
1 234
2 435
3 121
4 456
5 90
6 6756
10 365
Run Code Online (Sandbox Code Playgroud)
请注意,这假定第1列中的所有时间值都是唯一的.如果不是这种情况,您可以使用accumarray:
A =
1 234
3 121
4 456
6 6756
B =
2 435
5 90
10 365
B = [B; 1 512]
B =
2 435
5 90
10 365
1 512
C = [A;B];
D = accumarray(C(:,1),C(:,2));
U = unique(C(:,1));
E = [U,D(U)]
E =
1 746 %// 764 = 234 + 512
2 435
3 121
4 456
5 90
6 6756
10 365
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
63 次 |
| 最近记录: |