24小时热门版块排行榜    

查看: 1950  |  回复: 9

8710252

至尊木虫 (著名写手)

[求助] 如何提高matlab中for循环效率 已有4人参与

程序很简单,就是想导入大量的txt文件,作为一个矩阵。
for i=1:1:15000;                              
    data(i)=load([filepath,'1 (',num2str(i),')','.txt']);
end
版本64位R2011b
需要读取大量txt文件(所有txt文件都是纯数字的)到matlab中,程序如上,但是for循环实在是太慢,不知道各位大神有没有更好的方法。在程序运行中,我注意到CPU的使用率只有25%(本机器是双核四线程),不知道有没什么办法能提高CPU使用率。或者更快的速度导入。
回复此楼

» 猜你喜欢

» 本主题相关价值贴推荐,对您同样有帮助:

学习是一种态度
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

zhswee

铁杆木虫 (著名写手)

【答案】应助回帖

★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★
感谢参与,应助指数 +1
8710252: 金币+5 2014-10-01 20:04:19
8710252: 金币+6 2020-12-07 17:24:27
不知你一个文件有多少东西。你可以用c或其他语言把所以文件合成一个,然后用matlab读取整个文件到一个举证。

[ 发自小木虫客户端 ]
2楼2014-09-29 16:21:21
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

nevgiveup

银虫 (著名写手)

【答案】应助回帖


感谢参与,应助指数 +1
8710252: 金币+1 2014-10-01 20:04:02
用并行计算。详细百度。

[ 发自小木虫客户端 ]
3楼2014-09-30 13:45:23
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

bashan

禁虫 (正式写手)

★ ★ ★ ★ ★ ★ ★
感谢参与,应助指数 +1
8710252: 金币+5 2014-10-01 20:04:00
ben_ladeng: 金币+2, 谢谢指教 2014-10-01 22:17:09
本帖内容被屏蔽

4楼2014-10-01 00:53:11
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

huaiyuanjx

新虫 (初入文坛)

【答案】应助回帖

★ ★ ★ ★
感谢参与,应助指数 +1
8710252: 金币+3 2014-10-01 20:03:52
ben_ladeng: 金币+1, 谢谢指教 2014-10-01 22:17:31
parfor 循环  这个是并行for循环
5楼2014-10-01 11:18:16
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

8710252

至尊木虫 (著名写手)

引用回帖:
2楼: Originally posted by zhswee at 2014-09-29 16:21:21
不知你一个文件有多少东西。你可以用c或其他语言把所以文件合成一个,然后用matlab读取整个文件到一个举证。

很多个,我用批处理把所有的都合成一个了,大概是7个多G,但是用matlab读的时候和很慢,再加上合并的时间,其实没有什么提速。
学习是一种态度
6楼2014-10-01 20:06:03
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

8710252

至尊木虫 (著名写手)

引用回帖:
4楼: Originally posted by bashan at 2014-10-01 00:53:11
把你的for循环改成这样:data(1:15000)=load();看行不?如果用并行计算的,使用parfor,具体用法查help

我在网上也看来很多关于parfor的使用,但是都不能。
学习是一种态度
7楼2014-10-01 20:07:00
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

8710252

至尊木虫 (著名写手)

引用回帖:
5楼: Originally posted by huaiyuanjx at 2014-10-01 11:18:16
parfor 循环  这个是并行for循环

parfor貌似对这个问题不行
学习是一种态度
8楼2014-10-01 20:07:15
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

zhswee

铁杆木虫 (著名写手)

【答案】应助回帖

引用回帖:
6楼: Originally posted by 8710252 at 2014-10-01 20:06:03
很多个,我用批处理把所有的都合成一个了,大概是7个多G,但是用matlab读的时候和很慢,再加上合并的时间,其实没有什么提速。...

你确定有必要一次性存到一个数组?7个g的文本文件,你确定读到matlab后内存还够?

[ 发自小木虫客户端 ]
9楼2014-10-02 00:07:26
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

8710252

至尊木虫 (著名写手)

引用回帖:
9楼: Originally posted by zhswee at 2014-10-02 00:07:26
你确定有必要一次性存到一个数组?7个g的文本文件,你确定读到matlab后内存还够?
...

够啊,我16G的内存,64位系统
学习是一种态度
10楼2014-10-02 11:37:37
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 8710252 的主题更新
信息提示
请填处理意见