Re: [問題] 如何產生所有8*6 Binary矩陣?已回收

看板MATLAB作者 (神無月 孝臣)時間15年前 (2010/09/06 16:15), 編輯推噓1(101)
留言2則, 2人參與, 最新討論串3/3 (看更多)
※ 引述《agogo (想到再說...)》之銘言: : 請問一下各位高手 : 要如何產生,所有可能的8*6 Binary矩陣 : 就是矩陣裡只有 -1、1 兩種值 : 所以結果應該會有 2^(8*6) 種組合 : 想了很久,想不太出來...~"~ 這個其實不難 首先不要拘泥於矩陣是8x6的長相 在記憶體裡面都只是一個8x6=48的column而已 所以只需要將這有48元素由0和1的全部組合弄出來就好 要使用時只需要抓取其中一個組合出來後 再轉換成8x6的矩陣即可 寫法也不會很難 短短幾行就可以完成 因為有48個元素 所以這樣寫就好了 n = 48 ; A = de2bi( 0 : sum( 2 .^ ( 0 : n-1 ) ) ) ; 這個A就儲存了全部由0、1所構成的48元素row全部組合 (一維的row和column只差個方向而已) 要拿出來使用請靠index隨意叫出一個row來後再使用reshape排成8x6形式就好 譬如說reshape( A( 1 , : ) , 8 , 6 ) 會跑出 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 reshape( A( 2 , : ) , 8 , 6 ) 則是會跑出 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 reshape( A( 3 , : ) , 8 , 6 ) 則是會跑出 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2^48種組合全部都可以一次完成 只看使用者要挑那些出來使用 -- On the surface, the scientist invests the power of his mind in a single miraculous idea and naturally begins to rise above his fellows. But the parasites say "NO! Discovery must be regulated! It must be controlled and finally surrendered." ─Andrew Ryan -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.120.24.116

09/06 18:11, , 1F
感謝G大的指導...我試試看摟! 感恩ㄋㄟ!
09/06 18:11, 1F

09/06 23:04, , 2F
我 ... 我拘泥了 (遮臉)
09/06 23:04, 2F
文章代碼(AID): #1CXACbbM (MATLAB)
文章代碼(AID): #1CXACbbM (MATLAB)