[討論] 自串轉換

看板MATLAB作者 (胖子)時間12年前 (2013/11/08 18:33), 編輯推噓4(4014)
留言18則, 3人參與, 最新討論串1/1
請問一下 n=[1 0 1 0 0 0 0 1 0 0] B=mat2str(n) 此時B的型態是char A=eval(B) A==n 但若現在我將一個整數轉換為2進位 A1=dec2bin(644,9) A1此時的型態也是char 那我想把A1轉成是矩陣型態 卻沒辦法用eval 所以請問一下,若我想把2進位的字元轉換成矩陣該用哪個指令呢??? 麻煩板上大大指點,謝謝! -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 114.46.78.106

11/08 18:42, , 1F
A=dec2bin(644,9);B=num2str(A);C=double(B)-48
11/08 18:42, 1F

11/08 18:50, , 2F
A=dec2bin(644,9);B=str2num(A')'
11/08 18:50, 2F

11/08 18:51, , 3F
感謝大大解惑,雖然我還不知道為什麼要先num2str且為什麼..
11/08 18:51, 3F

11/08 18:52, , 4F
還要轉雙精度在減48,但我先用了解決掉後續問題再來想吧!
11/08 18:52, 4F

11/08 18:52, , 5F
謝謝兩位大大的幫忙!!
11/08 18:52, 5F

11/08 18:52, , 6F
等等 我重打:A=dec2bin(644,9);B=double(A)-48 這樣就好
11/08 18:52, 6F

11/08 18:54, , 7F
我這方法比2F好的地方在於 他可以這樣用:
11/08 18:54, 7F

11/08 18:55, , 8F
哇...兩位的觀點都好深奧,我想我得對這些型態的轉換在多
11/08 18:55, 8F

11/08 18:55, , 9F
用點心
11/08 18:55, 9F

11/08 18:57, , 10F
A=(0:2^20)'; B=dec2bin(A); B=double(B)-48;
11/08 18:57, 10F

11/08 18:57, , 11F
我這樣可以直接把一堆整數轉成二進位再轉回01矩陣
11/08 18:57, 11F

11/08 18:58, , 12F
2F大大推的我之前試過 必須用for去寫慢很多
11/08 18:58, 12F

11/08 18:59, , 13F
C
11/08 18:59, 13F

11/08 19:03, , 14F
double要-48是因為 字串'0'直接轉成double是48 '1'是49
11/08 19:03, 14F

11/08 19:05, , 15F
恩 沒錯 補充double('字串')是得到他的ascii碼 '0''1'分別
11/08 19:05, 15F

11/08 19:06, , 16F
是48 49 所以減48又會回到0 1
11/08 19:06, 16F

11/08 19:07, , 17F
醜了 打字太慢...
11/08 19:07, 17F

11/08 19:11, , 18F
恩恩 47以前好像是一些標點符號和功能鍵 48開始才數字
11/08 19:11, 18F
文章代碼(AID): #1IVBuDz3 (MATLAB)
文章代碼(AID): #1IVBuDz3 (MATLAB)