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