声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 1837|回复: 2

[综合讨论] 利用MATLAB进行大数据运算求助~~~~~~~~

[复制链接]
发表于 2008-11-19 20:40 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?我要加入

x
我的程序如下:

a=[];
digits(8);
vpa(a);
b=a(:,2)';
c=b.^2;
d=(sum(c(:))/numel(c))^(1/2)

程序很简单,想要实现的功能也很简单,就是输入一个n行2列的矩阵(就是a),读取其第二列并赋给矩阵b(第一列为编号,用不上),将各列数据求取平方和,然后除以数据的个数并开平方。

但是我的数据有大概五千多行,MATLAB只能允许一千多行数据,再多就不行了。

各位大侠有没有办法更改一下我的小程序,让它可以一次性的运算所有五千多行的数据啊,我先谢谢了!
回复
分享到:

使用道具 举报

发表于 2008-11-19 21:25 | 显示全部楼层
不懂楼主为何使用digits及vpa两指令, 是symbolic运算?
我试过数值没问题
a=rand(5000,2); b=a(:,2)'; c=b.^2; d=(sum(c(:))/numel(c))^(1/2)
 楼主| 发表于 2008-11-19 21:56 | 显示全部楼层


呵呵,此程序是我已毕业的师兄留给我的,我其实是用ANSYS的,只是在后面的数据处理的时候用到MATLAB,我没有专门学过MATLAB,当年的数值分析课有提过,不过我学的一塌糊涂,所以我对MATLAB程序基本不懂。

据我师兄所讲,digits(8)是为了规定有效数字位数为8位。
vpa(a)是要读取a的数值,以便下一步赋值其第二列给b。
不过我看好像也没什么用。^_^

你说得对,此程序可以正常运行,可是前提是数值行不多(大概1400多行是可以的),可是我的一个数据文件就有4000多行甚至5000多行,MATLAB就不行了。

不过还是很感谢ChaChing对我的问题的关注!谢谢了!
我刚才在百度里搜了一下,这个问题现已解决,命令如下:

a=importdata('file.txt');
b=a(:,2)';
c=b.^2;
d=(sum(c(:))/numel(c))^(1/2)

首先要把数据文件复制到MATLAB安装路径下的work文件夹里,并更名为file.txt。然后运行这个程序,5000多行数据就可以直接运行并得到结果了。

因为以前是把数据行直接复制到命令a=[ ];的中括号里了,一次只能算1400行左右的数据,所以我都是将数据分成4批,运行四次程序(不是1楼的程序,但功能是一样的,1楼的程序没法合并4此运算的结果,呵呵~)才算完的,很麻烦的,现在好了。

留个结果,希望对其它有类似问题的朋友有所帮助吧。

[ 本帖最后由 hrbeu2008 于 2008-11-19 22:00 编辑 ]
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

QQ|小黑屋|Archiver|手机版|联系我们|声振论坛

GMT+8, 2024-5-10 02:21 , Processed in 0.068957 second(s), 17 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表