MATLAB中数字的有效格式是什么?

时间:2014-04-16 13:59:50

标签: matlab syntax

MATLAB中的数字有效格式是什么?以下似乎是有效的:

x=0;
x=0.;
x=0.0;
x=0e0;
x=0E0;
x=0000.00; % Trailing and leading zeros seem to be irrelevant

是否有其他有效的通用号码规格?我在文档中找不到这个。

1 个答案:

答案 0 :(得分:4)

我相信这是浮点数格式的正则表达式,在MATLAB中有效:

^[-+]*([0-9]+|[0-9]*\.[0-9]+|[0-9]+\.[0-9]*)([eEdD][+-]?[0-9]+)?$

here编译,并对MATLAB稍作修改:

  • 添加了'd'指数字符(在FORTRAN,MATLAB的祖先中很常见)
  • 添加了大写指数字符
  • 在小数符号前后的所需顺序中添加了额外的大小写

我非常确定区域设置可以搞砸了这一点,例如,小数分隔符.可能会设置为,,这在欧洲很常见。那好吧。

正则表达式:

  • 字符串开头,后跟
  • 零个或多个连续符号,后跟
    • 连续整数的非零长度字符串,或
    • 可能为零长度的连续整数字符串,后跟一个点,后跟连续整数的非零长度字符串,或者
    • 连续整数的非零长度字符串,后跟一个点,后跟一个可能为零长度的连续整数字符串
  • 可选地后跟指数部分:
    • eEdD中的一个。
    • 零个或一个符号符号,后跟
    • 连续整数的非零长度字符串
  • 后跟字符串终结符

请注意,这是针对非复杂浮点值的。对于复杂值,您必须

  • 使用正则表达式一次为真实,一次用于虚部
  • [ij]{1}附加到虚部(仅限小写)
  • 在两部分之间处理间距(\s*)和[+-]{1}
  • 注意虚部可能单独出现的事实,但实部可能不会出现尾随[+-]{1},但没有虚部。