[問題]有關於取位元的問題已回收

看板MATLAB作者 (若鷹軍團-翔鷹)時間14年前 (2011/08/23 18:13), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串1/2 (看更多)
請問有一個1xN大小的矩陣,依條件每次有可能取5-6個位元 有方法能在取完後接著進行取位元的動作嗎 @@ EX: 011001010100011100 第一次取6bit後,第二次改取5個bit 原本寫的程式如下,可是每次到取五個bit之後,又會從6的倍數開始取位元 希望能有可以解決的方法,謝謝各位 QQ for i=1:length(secret) sp=0; if mod(i,6)~=0 %不是6倍數,繼續run到6倍數 continue; elseif mod(i,6)==0 secret_bit=num2str(secret((sp+1):(sp+i))); %當6倍數時執行 numbit=sscanf(secret_bit,'%1d', [1,inf]); dec(row)=numbit(i-5)*2^5+numbit(i-4)*2^4+numbit(i-3)*2^3+ numbit(i-2)*2^2+numbit(i-1)*2^1+numbit(i)*2^0; row=row+1; if dec(row-1)>=49 %如dec轉10-ary大於等於49時,改取5bits,轉10-ary secret_bit((sp+1):(sp+i))=[]; secret_bit=num2str(secret((sp+1):(sp+(i-1)))); numbit=sscanf(secret_bit,'%1d', [1,inf]); dec(row-1)=numbit(i-5)*2^4+numbit(i-4)*2^3+numbit(i-3)*2^2+ numbit(i-2)*2^1+numbit(i-1)*2^0; sp=sp-1; %secret,update start position,因改取5bits所以減1。 end end sp=sp+i %secret,update start position end -- 我的投手表 先發殺陣 - 馬原孝浩 和田毅 新垣渚 寺原隼人 齋藤和巳 杉內俊哉 先發中繼 - 星野順治 山田秋親 後援中繼 - 田之上慶三郎 倉野信次 必殺中繼 - 篠原貴行 王牌救援 - 岡本克道 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 163.17.9.90
文章代碼(AID): #1EKtqwhC (MATLAB)
文章代碼(AID): #1EKtqwhC (MATLAB)