mdsk.net
当前位置:首页 >> 用mAtlAB的FsCAnF读取数据没读完,只读了一部分 >>

用mAtlAB的FsCAnF读取数据没读完,只读了一部分

fscanf只能读取一行 需要读取多行的时候,需要用循环来实现

可以直接用dlmread函数读.如果用fscanf读,可以在最前面加一个fgetl或fgets函数,读到的第一行忽略即可.

%首先打开你的文件.txt.fid用于存储文件的位置 fid = fopen('我是文件.txt') ; %用fgetl 读前面 7行 注意fgetl不会忽略空的行,如果遇到空的行,则fgetl会读入一个空的字符串for i = 1 : 7 tline = fgetl(fid) ; %fgetl 一次仅读入一行,并返回这一行的

什么不行?有什么错误信息?我电脑上可以运行.你是用Windows吗?要是linux可帮不了你//////////////////////////////////test.txt的内容//[1][2][文字1][文字2]3,文字3,4,文字4///////////////////////////////////main.c//#include <stdio.h>#define MAX_PATH 100int

很少见把图像数据写成文本文件.建议写成binary文件(用fopen('aa.img','wr'),然后用fwrite,精度可以用int).读的时候用fread(fid,inf,'int').不过800*600*180*8=691M.你的内存需要>1G.

看不清,但给你举个例子你要是要获取例如这样的数据0.00 good 20.10 bot 31.02 yes 41.00 yes 51.00 yes 61.00 yes 31.00 yes 5那么你就fid = fopen('E:\temp\test.txt', 'r');a = fscanf(fid, '%f %*s %d ', [2 inf]) % It has two rows now.fclose(fid);

印象中,几个稍微高级文件I/O函数都不行:textread可以读指定的数据量,但好像只能从文件的开始读;importdata可以跳过指定的行数开始,但只能读到文件结束.可能需要用低级文件I/O函数:先fopen,然后通过循环,用fscanf、fgetl、fgets之类的函数读数据,完全自己控制读文件的过程,想分几次就分几次.别忘了最后要flcose哦.其实不难,如果用过C语言的低级文件I/O就更容易了,基本上没区别.

fscanf(fp,"%d%d%d",&a[i][12],&a[i][12],&a[i][12]); 这句话有问题,不能这样读啊,这样的话只能读出a[0][12],a[1][12],a[2][12],而且下标不能是 12而是11要想读进去要这样:for(i=0;ifor(j=0;j fscanf(fp,"%d",&a[i][j]); 你试试这个,不行的话,那就应该把文件中的数写成一列,那就行了!

matlab中的fscanf的用法如下:a=fscanf(fid,format) [a, count]=fscanf(fid,format,size) [a, count]=fscanf(fid,format,size) 个人感觉用的最多的是 这样的形式:data = fscanf(fid,format,size); 其中data为读取内容的数组,大小由size决定.size是一个[m

你如果知道要读的数据在哪个地方的话是很容易实现的,你只需要将txt的数据导入,然后取出就行,导入直接用那个workspace中的数据导入菜单实现就行 查看原帖>>

网站首页 | 网站地图
All rights reserved Powered by www.mdsk.net
copyright ©right 2010-2021。
内容来自网络,如有侵犯请联系客服。zhit325@qq.com