看板 C_and_CPP 關於我們 聯絡資訊
小弟我有一大筆資料(約3、4萬筆),每筆資料有5個維度,這5個維度內容都是數值 假設內容為 Dim1, Dim2, Dim3, Dim4, Dim5 接著 Dim1 要分成 H, M, L, 以 Dim1HM 及 Dim1ML 數值為分界 Dim2 也有分 H, M, L , Dim2HM 及 Dim2ML 數值為分界 一直到 Dim5 都有 H, M, L 所以,最後會分成 3*3*3*3*3 = 243 類, ex : LLLLL = 1類 LLLLM = 2類 LLLLH = 3類 .... HHHHH = 243 類 請問除了寫 243 層 if-else 之外, 我還能用怎樣的技巧解決這樣的問題? 非常感謝各位先進的細心回覆 -- 我期待 我等待 肩狹骨上的翅膀早些長出來 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 180.177.76.209
pico2k:switch case... 05/23 22:41
james732:我會想用 function pointer array 05/23 22:42
loveme00835:遞迴跑維度, 每一個維度用if 或 switch 都可以 05/23 22:42
FallwinDs:如果讓L=0 M=1 H=2 然後用Dim1*(3^4)+Dim2*(3^3)+.... 05/23 22:48
FallwinDs:當成index 算出來會是0~242之間的值 再用值去對應類呢? 05/23 22:48
tropical72:回 FallWinDs, L=0, M=1, H=2, 似乎還是要用if else 05/23 22:51
tropical72:假設資料範圍0-1, HM交界=0.6, LM=0.3 05/23 22:52
tropical72:最後還是要if(Dim>HM) H=1, elseif(Dim<ML) L=1.. 05/23 22:52
LPH66:至少 243 個變成 2x5 個了... 05/23 22:55
tropical72:!!真的是開始腦鈍鈍了,感謝各位提供方法,我再試過!! 05/23 22:56
james732:不過,分類之後要做什麼事情呢? 05/23 22:57
tropical72:嗯, 實不相瞞, 純粹是分類而已 05/23 23:51
tropical72:只是要加個 alog. 做分類 05/23 23:51
andyjy12:int flag=0;if(??H??) (flag|(0x03<<4)); 05/24 00:09
walker2009:感覺是遞迴 05/24 00:30
keelar:像 FallwinDs 說的編碼是最方便的 05/24 08:05