在MATLAB中查找变量的小数位数

PVa*_*Vaz 6 matlab

给定变量x = 12.3442

我想知道变量的小数位数.在这种情况下,结果将是4.如何在没有反复试验的情况下执行此操作?

Den*_*din 5

这是一个紧凑的方式:

y = x.*10.^(1:20)
find(y==round(y),1)
Run Code Online (Sandbox Code Playgroud)

假设这x是您的数字,20是最大小数位数.


Ron*_*ael 4

正如评论中提到的,“小数位数”在大多数情况下没有意义,但我认为这可能就是您正在寻找的:

>> num = 1.23400;
>> temp = regexp(num2str(num),'\.','split')

temp = 

    '1'    '234'
>> length(temp{2})

ans =

    3
Run Code Online (Sandbox Code Playgroud)

  • 是的。像 `temp = regexp(num2str(num,15),'\.','split')` 之类的东西确实有效,但也不总是如此。我很想学习更好的东西。 (2认同)