Octave 为什么倍频程分析这个字符串给一个值两个数字?

Octave 为什么倍频程分析这个字符串给一个值两个数字?,octave,Octave,在下面的倍频程会话中,为什么一个简单的stread操作会显示a和B的两个数字(而不是一个) 由于您没有指定重复提供的格式的次数,因此它一直在读取,直到到达字符串的末尾。%*f消耗“foo,第一个%f消耗条,%d消耗baz”。由于这两个都不能作为数字正确处理,因此会导致意外的结果 您可以指定要用作第二个输入参数的重复次数,以强制其仅尝试读取一个副本 [A,B,C,D,E,F,G,H] = strread(mystring, '%f %d %f %f %f %f %d %d %*f', 1) 或者

在下面的倍频程会话中,为什么一个简单的
stread
操作会显示a和B的两个数字(而不是一个)


由于您没有指定重复提供的格式的次数,因此它一直在读取,直到到达字符串的末尾。
%*f
消耗
“foo
,第一个
%f
消耗
%d
消耗
baz”
。由于这两个都不能作为数字正确处理,因此会导致意外的结果

您可以指定要用作第二个输入参数的重复次数,以强制其仅尝试读取一个副本

[A,B,C,D,E,F,G,H] = strread(mystring, '%f %d %f %f %f %f %d %d %*f', 1)
或者,您可以修改格式字符串以适应行末尾的字符串

[A,B,C,D,E,F,G,H] = strread(mystring, '%f %d %f %f %f %f %d %d %*s %*s %*s')

由于您没有指定重复提供的格式的次数,因此它一直在读取,直到到达字符串的末尾。
%*f
消耗
“foo
,第一个
%f
消耗
%d
消耗
baz”
。由于这两个都不能作为数字正确处理,因此会导致意外的结果

您可以指定要用作第二个输入参数的重复次数,以强制其仅尝试读取一个副本

[A,B,C,D,E,F,G,H] = strread(mystring, '%f %d %f %f %f %f %d %d %*f', 1)
或者,您可以修改格式字符串以适应行末尾的字符串

[A,B,C,D,E,F,G,H] = strread(mystring, '%f %d %f %f %f %f %d %d %*s %*s %*s')