How can I to convert a cell to a double without losing the leading zeros?

11 ビュー (過去 30 日間)
pink flower
pink flower 2020 年 9 月 20 日
コメント済み: Star Strider 2020 年 9 月 20 日
I have a loop where I am trying to extract the numbers and convert them to double. However, when the numbers are "0000", the result is just "0". How can I do this?
for x = 1:length(ix20);
namex = files(i).name;
sss=regexp(namex, '(?:\d{4})\>','match');
format longg;
hm(x)=str2double(sss);
end
  2 件のコメント
David Hill
David Hill 2020 年 9 月 20 日
I don't understand what you are trying to do. Please explain with an example (input and expected output). The double of '0000' is 0.
pink flower
pink flower 2020 年 9 月 20 日
This is an hour and minute data. I need to put them in an array, so I'm trying to do this cell to double transformation.

サインインしてコメントする。

採用された回答

Star Strider
Star Strider 2020 年 9 月 20 日
Thank you for quoting my code from Extracting numbers from mixed string !
It is not possible to retain leading zeros in a numeric representation, such as double. To retain leading zeros, they must be kept as character arrays (single quotes) or string variables (double quotes).
I would appreciate it if you would Accept my Answer that uses the regexp call you quoted!
.
  2 件のコメント
pink flower
pink flower 2020 年 9 月 20 日
This is an hour and minute data. I need to put them in an array, so I'm trying to do this cell to double transformation. Can I do this without losing 0000?
Star Strider
Star Strider 2020 年 9 月 20 日
The leading zeros would disappear if your converted them to numeric values.
If you want to convert them to datetime arrays, that would be straightforward:
out = compose("%04d", 0:5:20).'
DT = datetime(out, 'InputFormat',"HHmm", 'Format','HH:mm')
producing:
out =
5×1 string array
"0000"
"0005"
"0010"
"0015"
"0020"
DT =
5×1 datetime array
00:00
00:05
00:10
00:15
00:20
The ‘DT’ vector would then be saved as a datetime array (call it anything you wish), with the leading zeros intact, and converted to hours and minutes as well. (The 'InputFormat' string specifies how the input is parsed, and the 'Format' string specifies how it is displayed.)

サインインしてコメントする。

その他の回答 (1 件)

Cris LaPierre
Cris LaPierre 2020 年 9 月 20 日
編集済み: Cris LaPierre 2020 年 9 月 20 日
I believe you would have to keep it a string in order to pad with zeros up front. See this post.

カテゴリ

Help Center および File ExchangeData Type Conversion についてさらに検索

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by