我有一个行向量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]
答案 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