0
array = [2 1 3 2 1]
for i = 2:length(array)
value = array(i);
j = i - 1;
array_j=array(1:j);
array_j_indices=cumsum(array_j>value);
[~,n]=find(array_j_indices==1);
newArray=array;
array(n+1:i)=array_j(array_j>value);
j=j-max(array_j_indices);
array(j+1) = value;
end %forLoop
disp(array);
你好, 我看到這個代碼,同時環插入代碼向量化,但我似乎無法理解它是如何工作的。 cumsum(array_j>value)
如何工作?我理解並測試了cumsum函數,但我似乎無法理解合理運算符在for循環下的cumsum函數內如何工作。向量化while循環插入排序MATLAB
另外,我不明白如何[~,n]=find(array_j_indices==1)
存儲值的矩陣n。它是否僅在列中存儲,因爲行中沒有(〜)?