[問題]關於多維陣列尋找出最小值的所在位置

看板MATLAB作者 (低調的奢華!)時間10年前 (2015/05/16 12:08), 編輯推噓0(004)
留言4則, 2人參與, 最新討論串1/1
哈嘍 各位大大好! 不好意思! 小弟我有個關於多維陣列尋找出最小值的所在位置的問題 (也就是尋找出最小值的所在陣列中 其"列"行"頁"的確切位置) 程式碼如下: A(:,:,1) = [7,2,3,4;5,6,7,8;9,10,11,12] ; A(:,:,2) = [7,4,2,7;6,5,1,2;3,8,4,5] ; A(:,:,3) = [5,6,7,9;2,3,3,5;4,6,7,7] ; val = min(min(min(A))) ; [row,column,page] = find(A == val) ; row column page A A(2,3,2) 首先我產生一個三維陣列A, A(:,:,1) = 7 2 3 4 5 6 7 8 9 10 11 12 A(:,:,2) = 7 4 2 7 6 5 1 2 3 8 4 5 A(:,:,3) = 5 6 7 9 2 3 3 5 4 6 7 7 理論上A的最小值是1 位置是在A(2,3,2), 也就是第2列 第3行 第2頁的位置 但是我用上方的程式碼, 卻出現以下結果 row = 2 column = 7 page = 1 這結果與第2列 第3行 第2頁有很大差異, 因此想請教好心的大大, 該如何尋找出正確的位置索引值? 由衷感謝各位的幫忙!! -- 魚的淚 只有懂魚的水才看得見 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 58.244.162.51 ※ 文章網址: https://www.ptt.cc/bbs/MATLAB/M.1431749339.A.1B1.html

05/16 12:48, , 1F
[~, I] = min(A(:));[r,c,p] = ind2sub(size(A), I)
05/16 12:48, 1F

05/16 12:48, , 2F
(r,c,p)=(2,3,2) 正是你想要的
05/16 12:48, 2F

05/16 13:02, , 3F
根據manual,find三個output時跟你想的不一樣
05/16 13:02, 3F

05/17 16:11, , 4F
感謝大大幫忙!! ^^
05/17 16:11, 4F
文章代碼(AID): #1LLiBR6n (MATLAB)
文章代碼(AID): #1LLiBR6n (MATLAB)