例如,我想组合两个数字范围,如下所示:
1 2 3 4 5 11 12 13 14 15 16 17 18 19 20
所以,我试过了:
a = 1:5,11:20
但这没效果。
我也希望以非硬编码方式执行此操作,以便缺少5个元素可以从任何索引开始。
答案 0 :(得分:5)
对于您的示例,您需要使用square brackets来连接两个行向量:
a = [1:5 11:20];
或者减少硬编码:
startIndex = 6; %# The starting index of the 5 elements to remove
a = [1:startIndex-1 startIndex+5:20];
您可能还想查看以下相关功能:HORZCAT,VERTCAT,CAT。
还有其他一些方法可以做到这一点。首先,您可以先制作整个矢量,然后将不需要的元素编入索引并将其删除(即将它们设置为空矢量[]
):
a = 1:20; %# The entire vector
a(6:10) = []; %# Remove the elements in indices 6 through 10
您也可以使用set operations执行此操作,例如函数SETDIFF:
a = setdiff(1:20,6:10); %# Get the values from 1 to 20 not including 6 to 10