Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/matlab/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
MATLAB中数字的有效格式是什么?_Matlab_Syntax - Fatal编程技术网

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

MATLAB中数字的有效格式是什么?,matlab,syntax,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 是否有其他有效的通用编号规范?我在文档中找不到它。我相信这是浮点数格式的正则表达式,在MATLAB中有效: ^[-+]*([0-9]+|[0-9]*\.[0-9]+|[0-9]+\.[0-9]*)([eEdD][+-]?[0-9]+)?$ 根据MA

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

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

是否有其他有效的通用编号规范?我在文档中找不到它。

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

^[-+]*([0-9]+|[0-9]*\.[0-9]+|[0-9]+\.[0-9]*)([eEdD][+-]?[0-9]+)?$
根据MATLAB编译并稍作修改:

  • 添加了
    'd'
    指数字符(这在MATLAB的祖先FORTRAN中很常见)
  • 添加了大写指数字符
  • 在十进制符号前后按要求顺序添加了额外的大小写
我很确定区域设置会把事情搞砸,例如,十进制分隔符
可能会设置为
,这在欧洲很常见。哦,好吧

正则表达式(大写):

  • 字符串开始,后跟
  • 零个或多个连续符号,后跟
    • 连续整数的非零长度字符串,或
    • 可能是连续整数的零长度字符串,后跟一个点,后跟连续整数的非零长度字符串,或
    • 连续整数的非零长度字符串,后跟一个点,后跟可能为零长度的连续整数字符串
  • (可选)后跟指数部分:
    • e
      e
      d
      d
      中的一种
    • 零或一个符号,后跟
    • 连续整数的非零长度字符串
  • 后跟字符串终止符
请注意,这适用于非复数浮点值。对于复杂的值,您必须

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

这个正则表达式在我们可以查阅的文件中吗?@Etienne:没有;我靠一点帮助编造出来的。我添加了对我的sourcem的引用,并对答案进行了重新措辞,以便有更多的错误空间^ ^我已经验证了您为(实值)浮动编写的内容。除了
x=false
之外,我没有找到任何其他示例,这可能是通过cast处理的,因此不太公平。我不理解正则表达式的这部分:
([eEdD]?)(?(2)[+-]?[0-9]+)$
。我将为该位编写
([eEdD][+-]?[0-9]+)?
。你能解释一下逻辑吗?@DouglasB.stuble:没必要;你的版本很好。我将在中编辑它。