ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 效率神器,一键搞定繁琐工作
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
让更多数据处理,一键完成 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
123
返回列表 发新帖
楼主: 洛天依

[已解决] 多维数组应用的实际问题为什么很少

[复制链接]

TA的精华主题

TA的得分主题

发表于 2013-3-7 16:28 | 显示全部楼层
我对数组维数的理解:

对于多维数组来说,具体到某一维度来说,总是这样:
1. 对于包括本维度所有下层维数的所有元素属性来说,它们的上层维度属性(值)都是相同的。
2. 下一维度的值都可以看做是为了区别所有上层维数属性相同值的集合元素中的差别,而规定的不同属性值。


举例:
定义一个7维数组(省,市,区,学校,年级,班级,学生)存储全国所有小学生的信息。

那么,如果你在【学校】这个维度上来看,
则对应的上层维度值为 【省,市,区】,那么你现在并列维度中的【所有学生】的【学校属性】都相同,
都是【本省、本市、本区、本学校 的学生】

而【学校】这个不同属性,就是用来区分【同一省、市、区中】的差异部分。

…………
接下来,当【学校】维度为止的属性也都是相同值时,就需要对学生的属性进行进一步地差异化区分了,
那么显然不同的【年级】属性是可以用来区分学生的性质的内容……

以此类推……





TA的精华主题

TA的得分主题

发表于 2013-3-7 16:39 | 显示全部楼层
至于VBA中可以定义最多60维,这个是一种冗余设计。

原因在于:
1. 技术层面上很容易实现,即对于已经能够进行二维、三维数组处理的程序结构来说,
  进一步扩展到60维没有难度,几乎不需要增加什么资源。

2. 设计上考虑了足够的冗余。
  参考,=SUM()函数可以同时写入255个不同的区域……
  可是你见过这样的实际运用么?

  实际使用一般大概不会超过30个不同的区域。


3. 客观运用现状:
即使VB代码中设计了多维数组,但如果要直接输出结果是不可能的。
这个也造成了没有(或几乎没有)实际应用例子的现状。

4. 多种替代方法:
VBA中,可以有嵌套数组、字典关联等多种实用方法,直接替代多维数组的算法设计。

因此,尤其是能够熟练运用各种工具的具体编程者中,故意去使用多维数组的几乎没有。

甚至于,可以使用多维数组时,也会无意识地在算法设计阶段回避多维数组的用法。


…………
以上就是对楼主疑问的答复。




  

评分

1

查看全部评分

TA的精华主题

TA的得分主题

 楼主| 发表于 2013-3-7 17:35 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
qqaa266 发表于 2013-3-7 12:03
就目前的硬件技术来说,不管你定义了多少维,在电脑眼里都是一维的;所谓的多维只是我们人类为了各种实际 ...

谢谢qqaa266
学习了!
忽然想起,子龙护送皇叔去江东

情况1:孔明给了3个锦囊。
大家彼此都能理解和接受。

情况2:孔明给了好多麻袋锦囊,最大一个嵌套了60个锦囊 ...
(子龙当场石化)

一方面,是我觉得qqaa266说的有道理;
一方面,又觉得设计者太...恐怖了
总之,学习了!

TA的精华主题

TA的得分主题

 楼主| 发表于 2013-3-7 17:50 | 显示全部楼层
香川群子 发表于 2013-3-7 16:28
我对数组维数的理解:

对于多维数组来说,具体到某一维度来说,总是这样:

谢谢群子老师
我也想起举“学校学生”这例子,可自己描述太乱,不像您的描述这么有条理\(^o^)/~

也许是(一维二维)数组的优点太耀眼,不由得让我往后联想 。。。
学习各位高手的理解,非常感谢给予的详细说明、示例和链接。
有空去想,不如多学习“当红主角”的知识

很高兴,谢谢大家的帮助!

TA的精华主题

TA的得分主题

发表于 2013-3-8 09:50 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
这个听起来比较复杂,要补一下课才行。

TA的精华主题

TA的得分主题

发表于 2013-3-8 10:00 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
可以把多维数组看成多元一次方程,任一自变量发生变化,就产生一个结果。所不同的是数组用的是整数,方程可以是小数。可以把60维数组看成一个60元一次方程,并限制变量只能是整数。在日常工作中多因素控制结果的事例确实少于单因素,二因素。

评分

1

查看全部评分

TA的精华主题

TA的得分主题

发表于 2018-8-15 23:55 来自手机 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
数组其实多维也是二维。
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2025-1-12 04:51 , Processed in 0.020230 second(s), 7 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

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