电脑电源怎么启动启动不起来怎么回事

查看: 7335|回复: 10|关注: 0
求助_Matlab读取dat数据文件_新手贴
<h1 style="color:# 麦片财富积分
新手, 积分 5, 距离下一级还需 45 积分
如题,dat是十六进制的,有2.9G大。用于数据分析。
论坛里好多说用load的,但是文件过大,计算机内存不足一次读出。
原先也读过类似的dat文件,用的fgetl函数分断读取,但是这次是十六进制的数据,读入以后全是乱码、
求大神帮帮忙,另附数据截图两张,用的UltraEdit打开的(截图2中的乱码是什么小弟也不清楚,求高人)。
在线等。。。。。
<h1 style="color:# 麦片财富积分
另不充,尝试过fread读取,数据倒是取到了,但是是一个一个读进来的,不会保持愿数据格式。
而且,数据量的问题,一个一个读应该比按行读慢很多。
<h1 style="color:# 麦片财富积分
有没有人知道帮帮忙啊
<h1 style="color:# 麦片财富积分
是我问题不够清楚吗,求解
<h1 style="color:# 麦片财富积分
怎么都没人理我。。。。
论坛优秀回答者
关注者: 234
你要读取什么?如果要全部读取进来,那你不管换什么方法都不行的,因为内存限制
<h1 style="color:# 麦片财富积分
kaaaf123 发表于
你要读取什么?如果要全部读取进来,那你不管换什么方法都不行的,因为内存限制 ...
要全部读出来,把数据分成N部分,一部分处理完清空不行吗
论坛优秀回答者
关注者: 234
kingmis10108 发表于
要全部读出来,把数据分成N部分,一部分处理完清空不行吗
我是说一次性全部读入当然不是,如果分部分再清空是可以的
用textscan或者fscanf就行
<h1 style="color:# 麦片财富积分
FileStream fs = new FileStream(&d:\\693.dat&, FileMode.Open, FileAccess.Read);
& && && && &BinaryReader br = new BinaryReader(fs);
& && && && &StreamWriter sw = new StreamWriter(&d:\\test1.dat&);
& && && && &int length = (int)fs.L
& && && && &while (length & 0)
& && && && &{
& && && && && & byte tempByte = br.ReadByte();
& && && && && & string tempStr = Convert.ToString(tempByte, 16);
& && && && && & if (tempStr.Length == 1) tempStr = &0& + tempS
& && && && && & sw.Write(tempStr);
& && && && && & length--;
我用c井编的程序,你可以试试
<h1 style="color:# 麦片财富积分
想问楼主这个问题解决了没,我有一个2个多G的CT图像dat文件,不知道怎么打开转换成图像,求教,谢谢啦
站长推荐 /3
Powered by欢迎加入我们,一同切磋技术。 &
用户名: &&&
密 码: &
共有 5706 人关注过本帖
标题:有关读取dat数据文件的问题
等 级:新手上路
帖 子:20
&&问题点数:0&&回复次数:14&&&
有关读取dat数据文件的问题
新手向各位前辈请安了。
有一个dat文件,里面是由matlab生成的一个一维数组,试图将其读取至某指针中。我大体上知道应该用fread or fscanf or fgets来读取文件,但具体实施不是很清楚。
我试着编写了如下程序,但输出结果全部为0.有几点还需请教前辈:1,我必须知道我的dat文件的数据的字节才能采用fread吗?我如何知道这个字节呢?2,这种采用fread好还是其他函数好呢?
感谢大家。
#include &stdio.h&
#include &stdlib.h&
#include &math.h&
int main()
double help[2049];
FILE *fp = fopen(&externalrough1.dat&, &r&);
if(fp==NULL)
printf(&Cannot open file strike any key exit!&);
fread(help,8,2049,fp);
FILE *fh=fopen(&LIANXI.dat&,&w&);
for (i=0; i&=2048; i++) fprintf(fh,&%f\n&,help[i]);
fprintf (fh, &\n&);
fclose(fh);
附件: 您没有浏览附件的权限,请
搜索更多相关主题的帖子:
等 级:贵宾
威 望:304
帖 子:25793
专家分:48814
你这样读是不行的,2048这个数字本身就是你想当然的,事实上这个数据文件有40K多字节,而且它不是直接以double型数据储存的,是以字符串明文储存的。
[ 本帖最后由 TonyDeng 于
00:38 编辑 ]
授人以渔,不授人以鱼。
等 级:青峰侠
帖 子:938
专家分:1756
文件打开有两种方式,一个是文本形式,另一个是二进制形式,默认情况下是以文本方式来打开的,“文本流”可以看作是“字符流”(当然这种理解不科学), 我看了一下你的那个文件里的数据,完全是可以看见的(不是乱码),建议你不要使用fread函数,可以使用fscanf或者是fgets
只是个人见解
愿用余生致力编程
等 级:贵宾
威 望:304
帖 子:25793
专家分:48814
是的,3楼的想法靠谱。再提示一下,这些数据以TAB符作分隔符,即遇到ASCII码为9即是分隔数据标志了。
授人以渔,不授人以鱼。
来 自:邯郸
等 级:火箭侠
帖 子:1250
专家分:3538
直接 fscanf(file_pointer, &%lf&, &var); 就可以了
等 级:贵宾
威 望:304
帖 子:25793
专家分:48814
用fscanf()是可以的,楼主只是要注意事先申请足够大的空间数组来容纳这些数据,同时一定要逐个逐个数据读,每个计数,最后才知道真正读进来多少个数据。这个文件的储存,大概是20byte一个数,先从文件的字节数估计一下数组容量就是了,适当留一些位置,初步看未必全是20byte一个的。
授人以渔,不授人以鱼。
来 自:AVATAR
等 级:黑侠
帖 子:260
专家分:506
fread是按块来读取,一般用于读二进制数据。先确定你所要读取的文件当时是怎么存储的。
等 级:新手上路
帖 子:20
感谢楼上各位朋友的帮助 小弟继续努力 有了结果前来共享
等 级:新手上路
帖 子:20
回复 5楼 voidx
您好感谢您的提示 但我还是不会用fscanf 我编写如下 可是第二个到最后一个数据都不正确 您看是不是需要用for循环给fscanf? 感谢您
#include &stdio.h&
#include &stdlib.h&
#include &math.h&
int main()
double help[2049];
FILE *fp = fopen(&externalrough1.dat&, &r&);
if(fp==NULL)
printf(&Cannot open file strike any key exit!&);
fscanf(fp, &%lf&, &help);
FILE *fh=fopen(&LIANXI.dat&,&w&);
for (i=0; i&=2048; i++) fprintf(fh,&%f\n&,help[i]);
fprintf (fh, &\n&);
fclose(fh);
等 级:贵宾
威 望:304
帖 子:25793
专家分:48814
程序代码:
#include &stdafx.h&
#include &stdlib.h&
struct Matlib_Data
&&& unsigned int Element_N
&&& double Data[<font color=#6];
&&& char S
double Get_One_Data(FILE* fp, const char Separate);
int _tmain(int argc, _TCHAR* argv[])
&&& errno_t nE
&&& the_Data.Separate = <font color=#x09;&&&&&&&&&&&&// 数据分隔符为TAB
&&& the_Data.Element_Number = <font color=#;&&&&&&&&// 数据数目
&&& nError = fopen_s(&fp, &D:\\externalrough1.dat&, &r&);
&&& if (nError == <font color=#)
&&&&&&&&fseek(fp, <font color=#, SEEK_SET);
&&&&&&&&while (!feof(fp))
&&&&&&&&&&&&the_Data.Element_Number++;
&&&&&&&&&&&&the_Data.Data[the_Data.Element_Number-<font color=#] = Get_One_Data(fp, the_Data.Separate);
&&&&&&&&&&&&printf_s(&%.17f\n&, the_Data.Data[the_Data.Element_Number-<font color=#]);
&&& fclose(fp);
&&& printf_s(&\n总共读入%d个数据\n\n&, the_Data.Element_Number - <font color=#);
&&& return <font color=#;
// 从数据文件读入一个数据
double Get_One_Data(FILE* fp, const char Separate)
&&& char Buffer[<font color=#];
&&& char* pBuffer = B
&&& double
&&& ch = fgetc(fp);
&&& while (ch != EOF && ch != Separate)
&&&&&&&&*pBuffer =
&&&&&&&&pBuffer++;
&&&&&&&&ch = fgetc(fp);
&&& *pBuffer = '<font color=#';
&&& sscanf_s(Buffer, &%lf&, &data, _countof(Buffer));
&&& return
授人以渔,不授人以鱼。
版权所有,并保留所有权利。
Powered by , Processed in 0.054124 second(s), 8 queries.
Copyright&, BCCN.NET, All Rights Reserved温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!&&|&&
LOFTER精选
网易考拉推荐
用微信&&“扫一扫”
将文章分享到朋友圈。
用易信&&“扫一扫”
将文章分享到朋友圈。
或者使用命令uiimport也可以打开数据导入向导或者直接输入uiimport(’a.dat‘)%a.dat要放到matlab路径中,可以放到我的文档\Matlab文件中2.disp一般用在m文件中,用来打印信息,类似于C语言的Printfdisp('Hello Matalab')3.matlab中帮助文件中用到的m文件,都是可以直接使用的,都存储在matlab路径中,因此直接复制example code到command中,是可以正确运行和查看变量值的4.loadload这个函数,有很多用法,还可以加载m文件,指定的变量,这里只对其最基本的应用举例s=load(filename)假设在路径中有一文件1.datv=load('1.dat')%则将1.dat中的数据加载到了变量v当中了如果文件名后面没有extension,则matlab将文件默认为m文件,如果有后缀,则作为ASCII处理。filename也可以加上绝对路径&5.importdata命令同样,这里只讲解基本应用A = importdata(filename)A = importdata(filename, delimiter)A = importdata(filename, delimiter, nheaderlines)A=importdata('-pastespecial')%可以将excel中的数据通过这种方式导入注意:filename和delimiter都需要英语单引号引用,而nheaderlines则不需要delimiter:分隔符(','';'等)nheaderlines:指明前几行是文件头,或者行和列的header对于有表头的,导入到的变量a是一个类似于结构体的变量,我们可以通过a.data引用它的数据部分可以通过&&a.data(2)%引用第二个元素importdata还可以导入bmp以及jpg等数据&&fig_im = importdata('1.bmp')并且可以通过指令image显示出这个图片&&&image(fig_im)还有一种导入的方式:复制粘贴raw=importdata('-pastespecial')%可以将目前粘贴板中的数据(数据可能来源于excel或者txt文件等)导入到raw变量中,这里importdata对于剪贴板中数据的识别方式和直接导入文件是一样的,只不过将filename代替为了‘-pastespecial’而已6.将excel中的数据导入1.可以利用上面importdata,将剪切板的方式2.我们可以利用xlsread命令&&d = {'Time', 'Temp';
&&xlswrite('climate.xls', d, 'Temperatures');在工作目录下,建立了一个名字为climate.xls的文件,并且在工作簿Temperaturess中有如下内容:&&data = xlsread('climate.xls', 'Temperatures')可以将表中的数据,导入到变量data中,xlsread两个参数,一个是文件名,一个是工作簿名
97还可以不仅读取数据还可以读取表头[ndata, headertext] = xlsread('climate.xls', 'Temperatures')
headertext =
'Temp'或者读取特定单元格的内容firstrow = xlsread('climate.xls', 'Temperatures', 'A2:B2')
firstrow =
98xlsinfo可以读取表格的相关信息[type, sheets] = xlsfinfo('climate.xls')type =
Microsoft Excel Spreadsheet
'Temperatures'3.使用a=importdata('climate.xls')将整个表格的文件全部导入到结构体变量a中,我们可以根据结构体a来引用整个表格的所有内容&&&& A=importdata('myexcel.xlsx')&A =&& & & & data: [1x1 struct]& & textdata: [1x1 struct]&&& A.data.matlab_testans =& & &2 & & 4 & & 6 & & 7& & &3 & & 3 & & 3 & & 3& & 45 & & 3 & &54 & & 8& & &3 & &67 & &44 & &46& & &3 & & 3 & & 8 & & 8& & &3 & &33 & & 8 & & 8& & &1 & & 2 & & 3 & & 8&& A.textdata.matlab_testans =&& & 'hello' & &'good' & &'morning' & &'how'&&
阅读(7285)|
用微信&&“扫一扫”
将文章分享到朋友圈。
用易信&&“扫一扫”
将文章分享到朋友圈。
历史上的今天
在LOFTER的更多文章
loftPermalink:'',
id:'fks_',
blogTitle:'Matlab学习笔记2--数据导入(dat,txt,excel)',
blogAbstract:'1.dat文件数据导入一般使用File-&Import Data可以将数据导入到默认的变量中或者使用命令uiimport也可以打开数据导入向导或者直接输入uiimport(’a.dat‘)%a.dat要放到matlab路径中,可以放到我的文档\\Matlab文件中2.disp一般用在m文件中,用来打印信息,类似于C语言的Printfdisp(\'Hello Matalab\')3.matlab中帮助文件中用到的m文件,都是可以直接使用的,都存储在matlab路径中,因此直接复制example code到command中,是可以正确运行和查看变量值的',
blogTag:'',
blogUrl:'blog/static/',
isPublished:1,
istop:false,
modifyTime:7,
publishTime:8,
permalink:'blog/static/',
commentCount:0,
mainCommentCount:0,
recommendCount:0,
bsrk:-100,
publisherId:0,
recomBlogHome:false,
currentRecomBlog:false,
attachmentsFileIds:[],
groupInfo:{},
friendstatus:'none',
followstatus:'unFollow',
pubSucc:'',
visitorProvince:'',
visitorCity:'',
visitorNewUser:false,
postAddInfo:{},
mset:'000',
remindgoodnightblog:false,
isBlackVisitor:false,
isShowYodaoAd:false,
hostIntro:'',
hmcon:'1',
selfRecomBlogCount:'0',
lofter_single:''
{list a as x}
{if x.moveFrom=='wap'}
{elseif x.moveFrom=='iphone'}
{elseif x.moveFrom=='android'}
{elseif x.moveFrom=='mobile'}
${a.selfIntro|escape}{if great260}${suplement}{/if}
{list a as x}
推荐过这篇日志的人:
{list a as x}
{if !!b&&b.length>0}
他们还推荐了:
{list b as y}
转载记录:
{list d as x}
{list a as x}
{list a as x}
{list a as x}
{list a as x}
{if x_index>4}{break}{/if}
${fn2(x.publishTime,'yyyy-MM-dd HH:mm:ss')}
{list a as x}
{if !!(blogDetail.preBlogPermalink)}
{if !!(blogDetail.nextBlogPermalink)}
{list a as x}
{if defined('newslist')&&newslist.length>0}
{list newslist as x}
{if x_index>7}{break}{/if}
{list a as x}
{var first_option =}
{list x.voteDetailList as voteToOption}
{if voteToOption==1}
{if first_option==false},{/if}&&“${b[voteToOption_index]}”&&
{if (x.role!="-1") },“我是${c[x.role]}”&&{/if}
&&&&&&&&${fn1(x.voteTime)}
{if x.userName==''}{/if}
网易公司版权所有&&
{list x.l as y}
{if defined('wl')}
{list wl as x}{/list}&#xe621; 上传我的文档
&#xe602; 下载
&#xe60c; 收藏
该文档贡献者很忙,什么也没留下。
&#xe602; 下载此文档
正在努力加载中...
转matlab的各种数据读取(txt,dat,mat等格式)文件打开关闭(精品)
下载积分:1500
内容提示:转matlab的各种数据读取(txt,dat,mat等格式)文件打开关闭(精品)
文档格式:PDF|
浏览次数:2|
上传日期: 06:37:28|
文档星级:&#xe60b;&#xe612;&#xe612;&#xe612;&#xe612;
该用户还上传了这些文档
转matlab的各种数据读取(txt,dat,mat等格式)文件打开
官方公共微信}

我要回帖

更多关于 电脑电源不接主板启动 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信