Re: [討論] 在一個矩陣中找出最多出現次數的向量
※ 引述《popo14777 (草草)》之銘言:
: 小弟的程式如下
: A=[0 0 0 0 0 17 17 19 19 19 17 17 17 17 17]
: B=[0 0 0 0 0 22 22 24 24 24 24 24 24 24 24]
: C=[A;B]
: 0,0 出現5次
: 17,22 出現2次
: 19,24 出現3次
: 17,24 出現4次
: 直向量的個數有15個
: 在C的一個矩陣下挑出次數最多的直向量,且要最少個數,還要不包含零
: 所以挑第11組(17,24)的直向量,並取得11這個數值
: 小弟還有其他矩陣,例如矩陣為11*15(這個範例是2*15)
: 請問大大這樣的程式要如何寫呢?
: 謝謝
假設你的C是 3-by-N, 2D int array,
(因此不需考慮round off error) <= 這個版本不需考慮round off error
%%%%
01 function [idx, vec] = find_mode_vec( C )
02
03 array_max = max( C(:) );
04 R3_to_R1_mapping = [(array_max+1)*(array_max+1), array_max+1, 1]*C;
05
06 most_freq_entry = mode(R3_to_R1_mapping);
07
08
09 idx = find( R3_to_R1_mapping, most_freq_entry, 'first');
10 vec = C(:, idx);
11
12 end
只適用於 max( C(:) ) 不太大的case,
如果太大, 請另設 R3_to_R1_mapping 所該使用的mapping function.
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 140.109.22.216
※ 文章網址: https://www.ptt.cc/bbs/MATLAB/M.1468565886.A.1BA.html
※ 編輯: YoursEver (140.109.22.216), 07/15/2016 15:00:16
推
07/16 01:12, , 1F
07/16 01:12, 1F
推
07/16 01:14, , 2F
07/16 01:14, 2F
Please excuase me that I cannot use Chinese now.
If your matri C is a 2-by-N matrix,
use the following line instead:
R3_to_R1_mapping = [array_max+1, 1] * C;
※ 編輯: YoursEver (218.161.51.131), 07/16/2016 05:36:59
推
07/16 14:54, , 3F
07/16 14:54, 3F
→
07/16 14:54, , 4F
07/16 14:54, 4F
I made a mistake.
Please use the function below:
01 function [idx, vec] = find_mode_vec( C )
02 array_max = max( C(:) );
03 R3_to_R1_mapping = [ array_max+1, 1]*C + 1;
04
05 % most_freq_entry = mode(R3_to_R1_mapping);
06
07 % if most_freq_entry==1
08 R3_to_R1_without_1 = R3_to_R1_mapping(R3_to_R1_mapping~=1);
09 most_freq_entry = mode(R3_to_R1_without_1);
10 % end
11
12 idx = find( R3_to_R1_mapping==most_freq_entry, 1);
13 vec = C(:, idx);
14 end
※ 編輯: YoursEver (218.161.51.131), 07/16/2016 18:14:26
※ 編輯: YoursEver (218.161.51.131), 07/16/2016 18:15:35
※ 編輯: YoursEver (218.161.51.131), 07/16/2016 18:17:35
※ 編輯: YoursEver (218.161.51.131), 07/16/2016 18:22:18
→
07/17 09:37, , 5F
07/17 09:37, 5F
推
07/17 09:48, , 6F
07/17 09:48, 6F
推
07/18 12:10, , 7F
07/18 12:10, 7F
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 3 之 3 篇):
MATLAB 近期熱門文章
PTT數位生活區 即時熱門文章