矩阵转换问题
各位大哥大姐们问个和基础的问题我想把附件中的LID、TID和QID的数值提取出来并转换成二进制形式使每一位变为新数组的一个元素,LID、TID、QID的位数分别为3、 2、 3
比如说:
LIdTIdQId
0 4 2
要变成一个大的数组
怎么办?
先谢过各位啦 数据存取看看
[原创]使用文本文件(.txt)进行数据存取的技巧总结
http://forum.vibunion.com/forum/viewthread.php?tid=45622&highlight=
转换成二进制, help dec2bin
建议楼主先自行试试!
回复 沙发 ChaChing 的帖子
多谢版主不过文本数据存取我会,而且也看过那篇挺好的文章
至于dec2bin我试过了,比方说它确实能把0转成00二进制的形式,但我想把每一位二进制数拆成数组的一个元素,也就是说如果十进制数是3的话,二进制就是011,我想把它变成[ 0,1,1 ]的形式
回复 板凳 sunbojun0130 的帖子
以前没这样用过, 一时找不到现成函数!先试试这个
aa=dec2bin(3,3); aa=double(aa)-48
回复 地板 ChaChing 的帖子
能用 多谢版主 我用了下size(aa)结果是1 2但是不明白为什么是48?
难道跟ASCII码有关?查了下48对应字符0,发现好多地方都有类似的-48,一直都不明白
回复 5楼 sunbojun0130 的帖子
Yes! 跟ASCII码有关回复 6楼 ChaChing 的帖子
48对应字符0第一条命令:aa = 010
第二条命令:aa = double(aa)先将其变成双精度,也就是64位,然后再都减64位的0
可我还是想不通 怎么就变成两个数了?
一般像这种-48的语句都有什么作用?都什么情况下用?
劳烦斑竹扫一下盲
多谢
回复 7楼 sunbojun0130 的帖子
LZ help下charchar(X) converts the array X that contains nonnegative integers representing character codes into a MATLAB character array. The actual characters displayed depend on the character encoding scheme for a given font. The result for any elements of X outside the range from 0 to 65535 is not defined (and can vary from platform to platform). Use double to convert a character array into its numeric codes.
或许这样较清楚
aa=dec2bin(3,3); % aa='011' - 1*3 char
bb=double(aa); % bb= - 1*3 double
cc=bb-48; % cc= - 1*3 double; bb-48等同bb-
回复 8楼 ChaChing 的帖子
o 我明白了 从第一条语句dec2bin实际上就已经是了,只不过是char,后面的步骤实际上就是把它变成数字的形式对吧
help中的dec2bin实际上不是单纯的把十进制数变成二进制数,如果是的话size后应该是1,对吧
回复 9楼 sunbojun0130 的帖子
Rightdec2bin不是单纯的把十进制数变成二进制数, 是变成char!
回复 10楼 ChaChing 的帖子
恩 学习了 收获不小 多谢斑竹扫盲感谢斑竹耐心讲解 如果我也可以给人评分的话就给斑竹多加点分
[ 本帖最后由 sunbojun0130 于 2010-5-15 19:44 编辑 ]
回复 11楼 sunbojun0130 的帖子
客气! 刚好会又有空而已多来帮忙回应/讨论, 即可增加积分, 届时即有资格评分!
页:
[1]