自动连接不同长度的行

时间:2013-12-25 19:38:19

标签: matlab

我有一个行向量x2,还有另外两个行向量x9和x10。我想从x2从x10(1)到x9(1)和x10(2)到x9(2)提取元素范围。现在问题是这些范围的长度不一样,因此我无法将它们连接起来。 这是我到目前为止所尝试的:

clear
clc
x2=[7901 7905 7908 7912 7916 7920 8041 8044 8048 8052 8057 8088 8269 8273 8277];
x10= [8034,8264];
x9=[8074,8304];

for i=1:2
x4=x2(x2>=x10(i)&x2<=x9(i))
y(i,:)=[x4]
end

% I want to extract elements from x2 within the range x10(1) to x9(1) and then x10(2) to x9(2) so that my result should be: y= [8041 8044 8048 8052 8057 8269 8273 8277]

1 个答案:

答案 0 :(得分:0)

只需使用

[ x2(x2>=x10(1)&x2<=x9(1)) x2(x2>=x10(2)&x2<=x9(2)) ]

您的代码的问题在于您将每个结果分配给不同的行,但结果具有不同的长度,因此它们不能作为矩阵的行。如果要使用代码,请将循环更改为

y = [];
for ii = 1:2
    x4 = x2(x2>=x10(ii)&x2<=x9(ii));
    y = [y x4];
end