Labfans是一个针对大学生、工程师和科研工作者的技术社区。 | 论坛首页 | 联系我们(Contact Us) |
![]() |
|
![]() |
#1 |
初级会员
注册日期: 2011-04-11
帖子: 2
声望力: 0 ![]() |
![]()
我要读取一个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就不对了,我的数据很多,发现有的读的对,有的不对。 请问谁可以帮我解决一下。谢谢 |
![]() |
![]() |
![]() |
#2 |
初级会员
注册日期: 2011-04-11
帖子: 2
声望力: 0 ![]() |
![]()
因为数据量很大,最好直接读取为整数,而不是字符转数字。谢谢。
|
![]() |
![]() |
![]() |
#3 |
初级会员
注册日期: 2007-12-07
帖子: 22
声望力: 18 ![]() |
![]()
除非让写数据的人给你每个数据加个空格,就只能str2num了
奇怪,怎么会把数据连着写入txt? Matlab语言: fid = fopen('test.txt','r'); c = fgetl(fid); nums = zeros(1,20); for i=1:20 nums(i) = str2double(c((i-1)*4+1:i*4)); end nums' 结果 Matlab语言: ans = 1137 1110 1077 1040 1008 989 984 997 1026 1066 1120 1186 1265 1345 1416 1469 1504 1524 1538 1559
__________________
接MATLAB图像处理项目,毕设.也可作vb作业. QQ: 790404545 |
![]() |
![]() |
![]() |
#4 |
初级会员
注册日期: 2011-05-02
年龄: 34
帖子: 1
声望力: 0 ![]() |
![]()
我也遇到一个问题就是有两个字符串
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] 然后相加 望各位赐教 |
![]() |
![]() |