主题:怎样开辟一个二维数组能让其每行长度可任意缩放呢?
timwan
[专家分:0] 发布于 2010-06-04 15:36:00
要开辟一个二维数组,但是在计算过程中需要不断改变其每行的长度,该如何实现呢?
回复列表 (共29个回复)
11 楼
timwan [专家分:0] 发布于 2010-06-07 16:08:00
[quote]受教了!看来是落伍了啊,得继续学习了![/quote]
能看明白怎么使用的吗
12 楼
timwan [专家分:0] 发布于 2010-07-06 22:15:00
顶起,不知道还有没有人能支招
13 楼
cgl_lgs [专家分:21040] 发布于 2010-07-06 23:19:00
建议像这样的问题还是用一维变带宽的吧,只要数组列高只会减小不会放大就好办。
14 楼
timwan [专家分:0] 发布于 2010-07-14 18:23:00
[quote]建议像这样的问题还是用一维变带宽的吧,只要数组列高只会减小不会放大就好办。[/quote]
谢谢!
一维变带宽的存储方式只能解决每行长度不一的矩阵存储问题吧?
似乎不能解决每行长度不一,且不停地变化的问题啊~
15 楼
|||| [专家分:0] 发布于 2010-07-15 00:14:00
这么古怪的问题,你丫的模型肯定有问题,这么做就算硬做出来效率也会低到不能接受
16 楼
timwan [专家分:0] 发布于 2010-07-15 09:38:00
[quote]这么古怪的问题,你丫的模型肯定有问题,这么做就算硬做出来效率也会低到不能接受[/quote]
问题是这样的,我需要开相当多的小矩阵,但是每个矩阵的大小在计算过程中是不断变化的,这样该怎么解决呢?
17 楼
cgl_lgs [专家分:21040] 发布于 2010-07-15 11:39:00
有一个办法:
开一个大数组,初始设置好每个子矩阵的位置并留一定的空间;
计算时如果空间不够了就把其他的往后挪;
如果大数组空间不够了就数组写盘、重分配,再载入。
18 楼
timwan [专家分:0] 发布于 2010-07-15 23:34:00
[quote]有一个办法:
开一个大数组,初始设置好每个子矩阵的位置并留一定的空间;
计算时如果空间不够了就把其他的往后挪;
如果大数组空间不够了就数组写盘、重分配,再载入。[/quote]
这样做是可以的。
其实我每个子矩阵的尺寸的上限预先是知道的,但是如果全部按上限开太浪费内存啊。
19 楼
cgl_lgs [专家分:21040] 发布于 2010-07-16 06:38:00
那再试试此法呢:)
1:将原始子矩阵都放到C数组里;
2:计算时放到A数组中;
3:计算结果放到B里;
所有矩阵计算完毕后再把B数组数据全给C;
回到2:直到完成迭代:)
20 楼
timwan [专家分:0] 发布于 2010-07-16 09:52:00
[quote]那再试试此法呢:)
1:将原始子矩阵都放到C数组里;
2:计算时放到A数组中;
3:计算结果放到B里;
所有矩阵计算完毕后再把B数组数据全给C;
回到2:直到完成迭代:)[/quote]
您的意思是把A和B数组当临时存储吗?
这样每次计算都要在C和A、B之间来回赋值,会浪费太多的时间啊,因为子矩阵尺寸变化的次数太多了。
我来回复