没有for循环交替

2视图(30天)
JamJan
JamJan 2019年10月15日
我有两个向量想备用
= (1 2 3 4 5 6 7 8 9 10]
B = (0.5 0.2 - 0.4 0.8 - 0.9)
我想要以下输出(最好没有for循环)
输出= [1 0.9 0.8 0.4 0.2 0.5 - 2 3 4 5 6 7 8 9 10]
如何做到这一点呢?
谢谢!

答案(3)

斯蒂芬。
斯蒂芬。 2019年10月15日
编辑:斯蒂芬。 2019年10月15日
> > N = min(元素个数(A),元素个数(B));
> > V =[重塑(((1:N); B (1: N)], 1, []), (N + 1:结束),B (N + 1:结束)]
V =
1 0.9 0.8 0.4 0.2 0.5 - 2 3 4 5 6 7 8 9 10
1评论
j·亚历克斯。李
j·亚历克斯。李 2019年10月15日
不错的…我喜欢当我没有看到明显的完全相反的道路……和我学到了新东西空理由重塑

登录置评。


乔斯(10584)
乔斯(10584) 2019年10月15日
%排序方法
= (1 2 3 4 5 6 7 8 9 10]
B = (0.5 0.2 - 0.4 0.8 - 0.9)
C = [B];
(~,ix) =排序([1:元素个数(A) 1:元素个数(B)))
C = C(第九)

j·亚历克斯。李
j·亚历克斯。李 2019年10月15日
这里有一个可能性:如果a和B都保证是相同的长度(你的例子不是)和行向量,你能做的
N =长度(A)
输出=重塑(((,),B ()): ', 2 * N, 1)
如果不是相同的长度,你以后可以nan-pad短向量和删除。

标签

社区寻宝

找到宝藏在MATLAB中央,发现社区如何帮助你!

开始狩猎!