回 帖 发 新 帖 刷新版面

主题:怎样开辟一个二维数组能让其每行长度可任意缩放呢?

要开辟一个二维数组,但是在计算过程中需要不断改变其每行的长度,该如何实现呢?

回复列表 (共29个回复)

11 楼

[quote]受教了!看来是落伍了啊,得继续学习了![/quote]
能看明白怎么使用的吗

12 楼

顶起,不知道还有没有人能支招

13 楼

建议像这样的问题还是用一维变带宽的吧,只要数组列高只会减小不会放大就好办。

14 楼

[quote]建议像这样的问题还是用一维变带宽的吧,只要数组列高只会减小不会放大就好办。[/quote]
谢谢!
一维变带宽的存储方式只能解决每行长度不一的矩阵存储问题吧?
似乎不能解决每行长度不一,且不停地变化的问题啊~

15 楼

这么古怪的问题,你丫的模型肯定有问题,这么做就算硬做出来效率也会低到不能接受

16 楼

[quote]这么古怪的问题,你丫的模型肯定有问题,这么做就算硬做出来效率也会低到不能接受[/quote]
问题是这样的,我需要开相当多的小矩阵,但是每个矩阵的大小在计算过程中是不断变化的,这样该怎么解决呢?

17 楼

有一个办法:
开一个大数组,初始设置好每个子矩阵的位置并留一定的空间;
计算时如果空间不够了就把其他的往后挪;
如果大数组空间不够了就数组写盘、重分配,再载入。

18 楼

[quote]有一个办法:
开一个大数组,初始设置好每个子矩阵的位置并留一定的空间;
计算时如果空间不够了就把其他的往后挪;
如果大数组空间不够了就数组写盘、重分配,再载入。[/quote]
这样做是可以的。
其实我每个子矩阵的尺寸的上限预先是知道的,但是如果全部按上限开太浪费内存啊。

19 楼

那再试试此法呢:)
1:将原始子矩阵都放到C数组里;
2:计算时放到A数组中;
3:计算结果放到B里;
所有矩阵计算完毕后再把B数组数据全给C;
回到2:直到完成迭代:)

20 楼

[quote]那再试试此法呢:)
1:将原始子矩阵都放到C数组里;
2:计算时放到A数组中;
3:计算结果放到B里;
所有矩阵计算完毕后再把B数组数据全给C;
回到2:直到完成迭代:)[/quote]
您的意思是把A和B数组当临时存储吗?
这样每次计算都要在C和A、B之间来回赋值,会浪费太多的时间啊,因为子矩阵尺寸变化的次数太多了。

我来回复

您尚未登录,请登录后再回复。点此登录或注册