对于1楼的几种数组间的直接运算,还有一种观点就是:数组尺寸自适应变化,小的适应大的。
比如:
例1、2*{1,2;3,4;5,6}——将2视为一个小数组,自动跟随大数组的尺寸变化为{2,2;2,2;2,2},再执行二维数组间同位置元素一一对应运算。
例2、{1,2,3,4}*{4,5,6}——将{4,5,6}自动随大数组尺寸变化为{4,5,6,#N/A},再执行同向同尺寸一维数组间同位置元素一一对应运算。
例3、{1;2;3}*{4,5,6,7,8}——对于arry1来说,arry2的列方向是大尺寸,反之对于arry2来说,arry1的行方向是大尺寸,因此分别变化为:{1,1,1,1,1;2,2,2,2,2;3,3,3,3,3}*{4,5,6,7,8;4,5,6,7,8;4,5,6,7,8},再执行二维数组间同位置元素一一对应运算。
例4、{1,2,3}*{1,2,3,4;5,6,7,8}——将{1,2,3}变为{1,2,3,#N/A;1,2,3,#N/A}再执行二维数组间同位置元素一一对应运算。
例5、{1,2;3,4}*{1,2,3;4,5,6;7,8,9}将{1,2;3,4}变为{1,2,#N/A;3,4,#N/A;#N/A,#N/A,#N/A},再执行二维数组间同位置元素一一对应运算。
也就是说数组之间都可以看成二维(一维数组可以看成二维的其中一维尺寸为1),把尺寸统一了,同方向上尺寸不足部分用#N/A填补,不同方向上的则复制小尺寸数组,不足部分也用#N/A填补。
这种理解方式,比较容易记。
[ 本帖最后由 gouweicao78 于 2009-8-5 23:18 编辑 ] |