在matlab / octave中组合两个数组列的奇数和偶数索引

时间:2014-12-01 12:17:15

标签: arrays matlab octave

我有一个数组(b)有两列我想把数据和第二列的偶数索引与第一列的奇数索引的数据组合起来。
PS:数字不会是线性的,所以我不能使用linspace命令,这只是一个例子。

a1=[1;2;3;4;5]
a2=[1.5;2.5;3.5;4.5;5.5]
b=[a1,a2]

b array:
1.0000   1.5000
2.0000   2.5000
3.0000   3.5000
4.0000   4.5000
5.0000   5.5000

Final output below I'm trying to get:
1
2.5
3
4.5
5

3 个答案:

答案 0 :(得分:4)

怎么样:

[nb_rows,nb_cols] = size(b);
c = zeros(nb_rows,1);
c(1:2:end) = b(1:2:end,1);
c(2:2:end) = b(2:2:end,2);

答案 1 :(得分:2)

这处理a1(和a2)中元素数量奇数或偶数的情况:

c = b.'; %'//
n = numel(a1);
ind = bsxfun(@plus, [1;4], 0:4:2*n-1);
result = c(ind(1:n)).';

答案 2 :(得分:-2)

你可以组合两个向量(奇数和偶数),然后对它们进行排序:

c = sort([a1(1:2:end); a2(2:2:end)])