![]() |
求助fscanf命令的读取格式
我要读取一个80个连续字符组成的共20个正整数(4个字符一个这个整数),
比如: (1)新建一个text.txt文档,里面有一行数据如下: 11371110107710401008 989 984 997102610661120118612651345141614691504152415381559 包括空格一共80个字符。正确的结果应该是以下20个整数: 1137 1110 1077 1040 1008 989 984 997 1026 1066 1120 1186 1265 1345 1416 1469 1504 1524 1538 1559 原始数据中989、984和997前面有一个空格。 (2)我的代码是 fid=fopen('text.txt','r'); idat(1:20) = fscanf(fid,'%4d',[1 20]) 我的结果是: 1137 1110 1077 1040 1008 989 984 9971 261 661 1201 1861 2651 3451 4161 4691 5041 5241 5381 559 问题是读到997就不对了,我的数据很多,发现有的读的对,有的不对。 请问谁可以帮我解决一下。谢谢 |
回复: 求助fscanf命令的读取格式
因为数据量很大,最好直接读取为整数,而不是字符转数字。谢谢。
|
回复: 求助fscanf命令的读取格式
除非让写数据的人给你每个数据加个空格,就只能str2num了
奇怪,怎么会把数据连着写入txt? [font=Consolas][u]Matlab语言[/u]: [color=#000000]fid[/color] [color=#000000]=[/color] [color=#000000]fopen[/color]([color=#0000ff]'test.txt'[/color][color=#000000],[/color][color=#0000ff]'r'[/color]); [color=#000000]c[/color] [color=#000000]=[/color] [color=#000000]fgetl[/color]([color=#000000]fid[/color]); [color=#000000]nums[/color] [color=#000000]=[/color] [color=#000000]zeros[/color]([color=#000000]1[/color][color=#000000],[/color][color=#000000]20[/color]); [color=#000080]for[/color] [color=#000000]i[/color][color=#000000]=[/color][color=#000000]1[/color][color=#000000]:[/color][color=#000000]20[/color] [color=#000000]nums[/color]([color=#000000]i[/color]) [color=#000000]=[/color] [color=#000000]str2double[/color]([color=#000000]c[/color](([color=#000000]i[/color][color=#000000]-[/color][color=#000000]1[/color])[color=#000000]*[/color][color=#000000]4[/color][color=#000000]+[/color][color=#000000]1[/color][color=#000000]:[/color][color=#000000]i[/color][color=#000000]*[/color][color=#000000]4[/color])); [color=#000080]end[/color] [color=#000000]nums[/color][color=#000000]'[/color] [/font] 结果 [font=Consolas][u]Matlab语言[/u]: [color=#000000]ans[/color] [color=#000000]=[/color] [color=#000000] 1137[/color] [color=#000000] 1110[/color] [color=#000000] 1077[/color] [color=#000000] 1040[/color] [color=#000000] 1008[/color] [color=#000000] 989[/color] [color=#000000] 984[/color] [color=#000000] 997[/color] [color=#000000] 1026[/color] [color=#000000] 1066[/color] [color=#000000] 1120[/color] [color=#000000] 1186[/color] [color=#000000] 1265[/color] [color=#000000] 1345[/color] [color=#000000] 1416[/color] [color=#000000] 1469[/color] [color=#000000] 1504[/color] [color=#000000] 1524[/color] [color=#000000] 1538[/color] [color=#000000] 1559[/color] [/font] |
回复: 求助fscanf命令的读取格式
我也遇到一个问题就是有两个字符串
a='0.125 0.352 0.254 0.362 0.589 0.547' , b='0.254 0.478 0.569 0.985 0.685 0.784' 希望转换为数组 a=[0.125 0.352 0.254 0.362 0.589 0.547], b=[0.254 0.478 0.569 0.985 0.685 0.784] 然后相加 望各位赐教 |
所有时间均为北京时间。现在的时间是 11:27。 |
Powered by vBulletin
版权所有 ©2000 - 2025,Jelsoft Enterprises Ltd.