萍聚社区-德国热线-德国实用信息网

 找回密码
 注册

微信登录

微信扫一扫,快速登录

萍聚头条

楼主: 星星和月亮

[其他学科] 请教关于matlab的memory的问题,谢谢啦

[复制链接]
发表于 2009-7-28 11:43 | 显示全部楼层
6# 江南织造

没错, 结果是一样的. 但是内存占用是不一样的. ones是要额外创建vector, 是占用内存的, 而加是遍历计算, 不占用内存的. 参见:

Using Memory Efficiently
Strategies for Efficient Use of Memory
第一条:
To conserve memory when creating variables, Avoid creating large temporary variables, and clear temporary variables when they are no longer needed.
Die von den Nutzern eingestellten Information und Meinungen sind nicht eigene Informationen und Meinungen der DOLC GmbH.
发表于 2009-7-28 12:32 | 显示全部楼层
本帖最后由 ElberEis 于 2009-7-28 13:18 编辑

http://www.chinavib.com/space/63517/viewspace-16849.html

我试了一下nchoosek(a,k)和perms(), 还是内存出界

这个内存一个都省不了啊
Die von den Nutzern eingestellten Information und Meinungen sind nicht eigene Informationen und Meinungen der DOLC GmbH.
 楼主| 发表于 2009-7-28 21:10 | 显示全部楼层
这样讨论没效率.
你把你的代码当中造成内存溢出的那一部分贴上来看看
ElberEis 发表于 2009-7-28 11:39



for x=E:-1:1
     for y=1:length(G)
           if Tree_matrix(x,y)>0
                 t=[t Tree_matrix(x,y)]
           end
     end
end
pack;
Combination_matrix=combntns(t,E);

就是这段代码溢出了~~~~~~~~~~~~~~~   能不能麻烦帮我看一下啊,谢谢啦~~~~~~~~
Die von den Nutzern eingestellten Information und Meinungen sind nicht eigene Informationen und Meinungen der DOLC GmbH.
发表于 2009-7-28 21:17 | 显示全部楼层
对啊,所以我到现在也没想出来怎么解决这个问题啊~~~~~~~~~~~~~~~~~~
星星和月亮 发表于 2009-7-28 01:09


10的18次方个矩阵元素需要7.2760e+006 TB 的内存, 这个星球上还没这么大的内存啊MM

具体参见

http://zhidao.baidu.com/question/54002163.html
Die von den Nutzern eingestellten Information und Meinungen sind nicht eigene Informationen und Meinungen der DOLC GmbH.
 楼主| 发表于 2009-7-28 21:59 | 显示全部楼层
10的18次方个矩阵元素需要7.2760e+006 TB 的内存, 这个星球上还没这么大的内存啊MM

具体参见

http://zhidao.baidu.com/question/54002163.html
江南织造 发表于 2009-7-28 21:17



哎~~~~~~~~~~~~~~~ 偶哭S啊~~~~~~~~~~~~~~~~· 难道要再换个算法?
Die von den Nutzern eingestellten Information und Meinungen sind nicht eigene Informationen und Meinungen der DOLC GmbH.
发表于 2009-7-29 00:03 | 显示全部楼层
哎~~~~~~~~~~~~~~~ 偶哭S啊~~~~~~~~~~~~~~~~· 难道要再换个算法?
星星和月亮 发表于 2009-7-28 21:59


嫩到底要干吗来着?
Die von den Nutzern eingestellten Information und Meinungen sind nicht eigene Informationen und Meinungen der DOLC GmbH.
 楼主| 发表于 2009-7-29 02:24 | 显示全部楼层
嫩到底要干吗来着?
江南织造 发表于 2009-7-29 00:03



求一个点到另外一个点的最短路径的数量~~~~~~~~~~~~~
Die von den Nutzern eingestellten Information und Meinungen sind nicht eigene Informationen und Meinungen der DOLC GmbH.
发表于 2009-7-29 12:03 | 显示全部楼层
本帖最后由 ElberEis 于 2009-7-29 12:18 编辑

同意 江南织造

如果你在n个数当中选取m个数的排列组合, 排列组合的数目是:

n! / (n-m)!

现在n=29, m=12, 排列组合的数目是29!/(29-12)!, 每一个排列组合需要12个int的存储空间.

如果要存储所有的结果, 你至少需要 大约 29 8298 8307 8195 2000 byte 的内存

现在的主流硬盘大概是1TB, 大概是1.1e12 byte

所以不可能完全存储下来. 必须修改算法, 只能存储必要的内容, 随用随消
Die von den Nutzern eingestellten Information und Meinungen sind nicht eigene Informationen und Meinungen der DOLC GmbH.
发表于 2009-7-29 12:08 | 显示全部楼层
什么叫做 "求一个点到另外一个点的最短路径的数量" ?

既然是最短路径, 怎么会有多个?

你能不能描述一下你的算法先?
Die von den Nutzern eingestellten Information und Meinungen sind nicht eigene Informationen und Meinungen der DOLC GmbH.
 楼主| 发表于 2009-7-29 15:24 | 显示全部楼层
什么叫做 "求一个点到另外一个点的最短路径的数量" ?

既然是最短路径, 怎么会有多个?

你能不能描述一下你的算法先?
ElberEis 发表于 2009-7-29 12:08





就好比这个图里面点1到点5的最短路径数量就是2个,即点1到点3到点5,点1到点4到点5。这些点和连接都用矩阵来表示,然后通过矩阵来求点与点之间最短路径的数量。这个图的矩阵就是:  [0 1 1 1 0; 1 0 1 0 0; 1 1 0 0 1; 1 0 0 0 1; 0 0 1 1 0]

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册 微信登录

x
Die von den Nutzern eingestellten Information und Meinungen sind nicht eigene Informationen und Meinungen der DOLC GmbH.
您需要登录后才可以回帖 登录 | 注册 微信登录

本版积分规则

手机版|Archiver|AGB|Impressum|Datenschutzerklärung|萍聚社区-德国热线-德国实用信息网 |网站地图

GMT+2, 2024-4-27 18:33 , Processed in 0.058712 second(s), 14 queries , MemCached On.

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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