看板 MATLAB 關於我們 聯絡資訊
請問一下 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
profyang:A=dec2bin(644,9);B=num2str(A);C=double(B)-48 11/08 18:42
ejialan:A=dec2bin(644,9);B=str2num(A')' 11/08 18:50
songyu:感謝大大解惑,雖然我還不知道為什麼要先num2str且為什麼.. 11/08 18:51
songyu:還要轉雙精度在減48,但我先用了解決掉後續問題再來想吧! 11/08 18:52
songyu:謝謝兩位大大的幫忙!! 11/08 18:52
profyang:等等 我重打:A=dec2bin(644,9);B=double(A)-48 這樣就好 11/08 18:52
profyang:我這方法比2F好的地方在於 他可以這樣用: 11/08 18:54
songyu:哇...兩位的觀點都好深奧,我想我得對這些型態的轉換在多 11/08 18:55
songyu:用點心 11/08 18:55
profyang:A=(0:2^20)'; B=dec2bin(A); B=double(B)-48; 11/08 18:57
profyang:我這樣可以直接把一堆整數轉成二進位再轉回01矩陣 11/08 18:57
profyang:2F大大推的我之前試過 必須用for去寫慢很多 11/08 18:58
profyang: C 11/08 18:59
profyang:double要-48是因為 字串'0'直接轉成double是48 '1'是49 11/08 19:03
ejialan:恩 沒錯 補充double('字串')是得到他的ascii碼 '0''1'分別 11/08 19:05
ejialan:是48 49 所以減48又會回到0 1 11/08 19:06
ejialan:醜了 打字太慢... 11/08 19:07
profyang:恩恩 47以前好像是一些標點符號和功能鍵 48開始才數字 11/08 19:11