从malab中的sscanf读取字符串中的固定格式整数时不正确

时间:2016-05-06 23:33:46

标签: matlab scanf

我正在尝试通过MATLAB从固定格式的文本文件中导入整数数据

format_ListElems='%5i%5i%5i%5i%5i%5i%5i%5i%5i%5i%5i%5i%5i%5i';
str=' 9018 9019 9020 9021 9022 9023 9024 9025 9026 9027 9028 9029 903010992'
[List NbElems]=sscanf(str,format_ListElems)

我期待 列表='9018 9019 9020 9021 9022 9023 9024 9025 9026 9027 9028 9029 9030 10992' 但外出是 清单='9018 9019 9020 9021 9022 9023 9024 9025 9026 9027 9028 9029 90301 0 992'

在上面的例子中我哪里出错了?

任何提示都非常感谢!

此致

1 个答案:

答案 0 :(得分:0)

正如Andrew Piliser和Excaza在评论中提到的,%5i语法只是意味着期望5位数的整数输入。

您可以通过简单地省略'%5i'中的数字5来避免此约束。 例如:

format_ListElems = repmat('%i',1,13);
str=' 9018 9019 9020 9021 9022 9023 9024 9025 9026 9027 9028 9029 903010992';
[List NbElems]=sscanf(str,format_ListElems)

结果:

    9018
    9019
    9020
    9021
    9022
    9023
    9024
    9025
    9026
    9027
    9028
    9029
    903010992