作者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