我在某些索引处删除数组x
的元素。
x=rand(10,1);
delInd=[8 5];
delInd=sort(delInd); %delInd must be sorted for this to work
x(delInd)=[];
接下来,我使用x
计算另一个数组。
y=x+1;
现在,我想在inf
中放置新元素,例如y
,以使新元素对应于原始x
中已删除元素的位置。我使用以下代码执行此操作:
for ii=delInd'
y=[y(1:ii-1);inf;y(ii:end)];
end
是否可以对上述行进行矢量化处理,而无需进行for
循环或排序?
答案 0 :(得分:0)
您只需使用要替换的索引,就可以直接用另一个数组中的值替换数组中的值。
例如,您可以只替换以下元素:
originalArr = 1:10;
replaceInd = [3 4 7 10];
replaceArr = [100 101 102 103];
originalArr(replaceInd) = replaceArr;
现在originalArr
将包含
1 2 100 101 5 6 102 8 9 103