[討論]關於sscanf的指令

看板MATLAB作者 (純粹˙藍)時間12年前 (2013/10/09 22:37), 編輯推噓1(101)
留言2則, 1人參與, 最新討論串1/1
大家好,因為研究需要所以寫了一個迴圈如下 for y=0:1:16383 r=dec2bin(y) mat=sscanf(r,'%d') t=num2str(mat,'%014d') . . . end 有一個嚴重的問題是 當r=1111111111時,mat=1.111111111+e009這是沒有問題的 可是到了r=10000000000的時候,卻發生mat=2.147483647e+009 之後也都是固定值,是不是我在使用的時候限制了長度之類的呢? 還請了解問題的高手幫忙...謝謝!! -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.118.122.184

10/10 09:08, , 1F
用'%d'讀取造成整數 overflow, 不必經過中間轉換, 直接用
10/10 09:08, 1F

10/10 09:09, , 2F
t = sprintf('%014s', dec2bin(y)) 即可
10/10 09:09, 2F
成功了!! 非常謝謝!!:) ※ 編輯: blue05 來自: 140.118.122.184 (10/10 13:30)
文章代碼(AID): #1ILMf1kg (MATLAB)