回答
像這樣(假設V
是行向量):
value = 2
V2 = sort(V);
V2 = circshift(V2, [1, -find(V2 == value, 1) + 1]);
解釋:首先,你需要排序V
。然後你會發現第一個元素的索引等於value
與find(V2 == value, 1)
。最後,您必須按照正確的數量「旋轉」已排序的向量,以獲得第一個位置的value
。由於V
是行向量,則需要沿第二個維度旋轉,所以你必須使用作爲第二個參數circshift。請注意,這僅適用於value
實際上是V
的一部分。
示範:
>> V = [5 6 7 1 2];
>> value = 2;
>> V2 = sort(V);
>> V2 = circshift(V2, [1, -find(V2 == value, 1) + 1])
V2 =
2 5 6 7 1
和
>> V = [ -1 -2 -1 0 0 1 1 2];
>> value = 2;
>> V2 = sort(V);
>> V2 = circshift(V2, [1, -find(V2 == value, 1) + 1])
V2 =
2 -2 -1 -1 0 0 1 1
相信需要'value'是的'V'可以消除這樣的部分:'V2 = circshift(V2,[1,-find(V2> =值,1)+ 1]) '。這應該起作用,因爲'V2'已經排序。 –
是的,那已經更好了,但是我認爲當value> max(V)'時它仍然失敗。 –
我不知道會不會用這個東西OP,但這應該爲正數的工作:'V2 = circshift(V2,[1,-find(V2> =(值*(值<= MAX(V2)), 1)+ 1])' –
- 1. 自定義排序陣列鍵/值對
- 2. 排序在Javascript陣列基於預定義的次序
- 3. 排序多維陣列由一個定義的順序
- 4. 從一個陣列排序到另一個陣列,Java
- 5. 預定義的表頭,從陣列
- 6. 排序陣列重複值的另一個陣列
- 7. 排序一個Flex陣列
- 8. 一個數排序陣列
- 9. 根據另一個陣列中定義的排序順序對陣列進行排序
- 10. 排序陣列,並安排一定的價值
- 11. 的iOS排序一個陣列中的另一個陣列
- 12. 按預定義的規則排列陣列
- 13. 自定義排序bash陣列
- 14. 根據大陣列中另一個陣列的值對大陣列排序
- 15. 排序的指數的陣列預設
- 16. 從另一個陣列排序1陣列
- 17. 排序基於值從另一個陣列
- 18. 從另一個陣列中排除一個陣列的元素
- 19. 基於自定義對象值的排序陣列
- 20. 如何定義一個自定義的比較函數按照一維數組排序一個矩陣排序
- 21. 特定的陣列排序
- 22. 排序陣列基於陣列值
- 23. 兩個PHP陣列 - 排序一個陣列與另一
- 24. 按鍵值排序陣列
- 25. 跨多個陣列的一致排序
- 26. MATLAB:創建一個預定義的圖像陣列
- 27. 排序陣列由多個值
- 28. 排序陣列使用對象和自定義排序邏輯的多個鍵
- 29. Postgres的:用預先定義的陣列
- 30. 排序陣列通過從子陣列項值
目前還不清楚你在問什麼。什麼定義了「從值2開始的排序」? – sfstewman
@sfstewman對不起,如果我不清楚。 我想與升序排序的矢量V,但不是用1作爲排序開始會做我想開始從一定值排序,然後在末端附加較小的值。在這種情況下,我想從2開始,所以1將在V2的末尾處去。 – gabboshow
排序需要一種排序元素的方法。目前尚不清楚你將如何訂購元素。你對小於2的元素做什麼?如果你的數組是'[-1 -2 -1 0 0 1 1 2]',你想要的排序順序是什麼? – sfstewman