sscanf 函数怎么用呢
看了help,还是不太懂,请指教一下,解释一下下边的例子就可以了Example
A = ['abc 46 6 ghi'; 'def 7 89 jkl']
A =
abc 46 6 ghi
def 7 89 jkl
B = sscanf(A, '%*s %d %d %*s', )
B =
476
869 看看doc sscanf里面讲的比较详细,就懒得给你翻译过来了 同意楼上的说法,这样的问题多费点心自己就可以搞定了 原帖由 wewaa 于 2007-6-14 11:59 发表 http://www.chinavib.com/forum/images/common/back.gif
看了help,还是不太懂,请指教一下,解释一下下边的例子就可以了
Example
A = ['abc 46 6 ghi'; 'def 7 89 jkl']
A =
abc 46 6 ghi
def 7 89 jkl
B = sscanf(A, ...
每次读取一行,2代表A的行数,而%*s %d %d %*s表示读取每行前面4个组元。
因为sscanf每次读取一个字符,而且读取的顺序是列优先从左到右的,然后同一列元素合为一个数
比如上面的例子中476689均为这样的数。
下面这个例子可以拿去佐证:
A = ['a bc 46 6 63 ghi 3 6';
'd ef 7 89 2 jk9 12']
B = sscanf(A, '%*s %*s %d %d %d %*s %d', )
结果是B =
476 623
869 13
sscanf中用要求输入量内的元素必须严格等长,
像上面这样的用法我还没有用过,感觉没有什么大的用处。doc sscanf例子中不是给出了下面的用法:
for k = 1:2
C(k,:) = sscanf(A(k, :)', '%*s %d %d %*s', );
end
C
C =
46 6
7 89
如果你是为了读取文件里面的数据,可以参考eight的精华帖里面关于txt文本读取的用法。 原帖由 spano 于 2007-6-14 14:33 发表 http://www.chinavib.com/forum/images/common/back.gif
每次读取一行,2代表A的行数,而%*s %d %d %*s表示读取每行前面4个组元。
因为sscanf每次读取一个字符,而且读取的顺序是列优先从左到右的,然后同一列元素合为一个数
比如上面的例子中476689均为这样的 ...
谢谢您的热心!解释的很详细!:victory:
页:
[1]