PTT
Submit
Submit
選擇語言
正體中文
简体中文
PTT
MATLAB
[討論] 排序與搜尋
作者:
forb9823018
(風過無痕)
2015-01-02 23:39:40
假如我有一個x[6]=[3,5,3,1,2,4];
[a,index]=sort(x);
得到a=[1,2,3,3,4,5];
index=[4,5,1,3,6,2];
但如果要分別找1,2,3,4,5分別是在排序後的第幾個數字
是不是只能分別找
有沒有辦法在排序時就用另一個矩陣存下來?
作者:
mp19990920
(郝渴連)
2015-01-03 08:15:00
排序後的 index 就是 1:length(x) 啊!
作者:
forb9823018
(風過無痕)
2015-01-03 11:56:00
樓上的意思是總長度? 但我要找的是例如我要找3是在排序後的哪個位置但每次要找一次不同的數字都要整個數列搜尋一次有沒有辦法在排序時就先存起來?
作者:
gotodmcyo
(鍵盤小妹)
2015-01-03 13:20:00
就是1F說的index啊?
作者:
mp19990920
(郝渴連)
2015-01-03 14:19:00
a = [1,2,3,3,4,5]; iA = 1:length(a);iA = [1,2,3,4,5,6];↑第 2 個 3 在第 4 個數字
作者:
forb9823018
(風過無痕)
2015-01-03 14:26:00
但這樣沒有對應關係要怎麼找?肉眼一看就知道但沒有建立一對一的對應關係所以還是要整個數列搜尋?
作者:
mp19990920
(郝渴連)
2015-01-03 16:59:00
..... 為啥你會認為 a 跟 iA 並非一對一對應
作者:
forb9823018
(風過無痕)
2015-01-03 17:13:00
因為知道'5'這個數字之後要一個一個從a[1]、a[2]...直到a[6]才找到 iA對找尋'5'這個數字並沒有幫助不管a是什麼,只要總長度一樣 iA永遠都一樣
作者:
mp19990920
(郝渴連)
2015-01-03 17:29:00
你該不會不知道有 find 這個 function 吧!!!
作者:
forb9823018
(風過無痕)
2015-01-03 17:44:00
那就等於每個數字都要find一次,也就是整個數列要找過一遍計算量會很大,在排序時有辦法就先排好嗎?我想到一個不算太聰明的辦法應該有更好的寫法就是排序完再跑一個迴圈1:length(a)for i=1:length(a)b[a[i]]=i; 不過要把重複數字的定義好
作者:
gotodmcyo
(鍵盤小妹)
2015-01-03 19:48:00
排序問題隨便找一本資料結構就有
作者:
mp19990920
(郝渴連)
2015-01-03 20:08:00
亂入又不看懂問題 ... 他已經 sort 過了a=[1,2,3,3,4,5];index=[4,5,1,3,6,2]; 你要的是啥?
作者:
forb9823018
(風過無痕)
2015-01-03 20:54:00
就是打數值直接知道位置不用find還要花時間找
作者:
gotodmcyo
(鍵盤小妹)
2015-01-03 21:20:00
??m大是指我嗎?我想說他要找一個複雜度低一點的演算法去找他要的東西
作者:
forb9823018
(風過無痕)
2015-01-03 23:14:00
sort沒問題,我想問的是能不能在排序時就順便做到我推文中程式碼的效果而不用再跑回圈給值一次
作者:
mp19990920
(郝渴連)
2015-01-04 12:47:00
問題是你的迴圈有問題啊 b[a[3]]=3 b[a[4]]=4所以 b[3]=3 被 b[3]=4 蓋掉了
作者:
forb9823018
(風過無痕)
2015-01-04 15:25:00
所以我後面附註有說要把重複的數字定義好至於要怎麼定義就看應用
繼續閱讀
[其他] 請問迴圈取值?
hyt0327
[問題]請問如何轉換二元多次式如y=f(x)變x=f(y)
qweeqwee
[討論] 做完fft之後,如何了解圖形??
mimi0254didi
[問題] 在矩陣中放入syms的值
radien
[問題] 3D量測得到的點資料,是否可用Matlab?
senga
[討論] 請問關於間距不固定的內插法
skyslj
[問題]請問一下迴圈中使用save並畫圖的問題
member45
[問題] 有關矩陣的外積
Yagami5566
Re: 分數階微積分數值解
andyfc1
[討論] 官方討論區中的code 在matlab中找不到
UCboy
Links
booklink
Contact Us: admin [ a t ] ucptt.com