求教多维数组的定义和赋值方法
mathcad吧
全部回复
仅看楼主
level 2
对二维数组很简单,比如Ai,j :=.....
Ai,j,k:=.... 就没法定义或赋值了。
看着很简单的事,好奇怪不行。(i,j,k是下标)
我试过(Ai,j)k定义和赋值,也不行。
有人能点拨一下吗?不胜感激。
2016年04月20日 08点04分 1
level 15
我对您的回帖被系统删掉了,原因是我附了过多的网址。
现把被删的原文重贴在下面,旧帖地址自己搜一下吧。
MC中没有数组,只有矩阵。当然,您也可以自定义函数M(i,j,k):=xxxxx 。但是,矩阵运算是MC的优势之一。MC的向量对应的是一维数组;矩阵对应的是二维数组。对于多于二维的数组,在MC中是用矩阵嵌套来解决的。本吧已有不少帖子讨论过嵌套矩阵。用关键字“嵌套”在本吧中搜一搜旧帖吧。下面是我搜出来的旧帖中的一部分,自己看吧。
2016年04月20日 10点04分 3
level 15
2016年04月20日 11点04分 4
多谢!
2016年04月21日 00点04分
之前你提到:“嵌套矩阵的做法:我的做法是,在母矩阵之外做一个只有占位符的子矩阵,再复制到只有占位符的母矩阵中,然后填写数据。" 不知什么含义。
2016年04月21日 01点04分
当时的语境:不用编程或列算式,临时手工造一个嵌套矩阵。对应于母矩阵中的每一个占位符,都在母矩阵之外做好子矩阵,然后再粘贴到母矩阵中去,从而构成嵌套矩阵。
2016年04月21日 04点04分
level 2
关于嵌套数组,我以前无意中也发现可以用。另外,我也理解能够用程序实现。
但是我对mathcad的简洁有偏执倾向,对程序这种缺乏美感的解决方案总是尽量避免,除非不得已。Mathcad 15.0.0.436
以下就是个例子。用AA方式,容易实现3维或多维数组运算。
但是想用A或B方式就不行,和贴吧里之前实现的所有例子不同,我希望下标作为变量能够使用或者引用别的矩阵元素。之前的例子都是具体数值,意义有限。多谢指点!
2016年04月21日 01点04分 6
我的偏执包括A(i,j,k):=....这种形式也不怎么接受。
2016年04月21日 01点04分
计算机的各种程序语言,都是编写语言的人事先规定了语法和格式的,各种语言的规定不同,风格也不同,实现的功能和表达方法也不同。必须遵循程序语言的语法,才能正确运算。这是没办法随心所欲的事情。如果您不认可这种语言的语法形式,只有另选其它自己喜欢的语言来用。或者说多种语言综合起来使用。
2016年04月21日 04点04分
level 13
简洁--要求是蛮高的,我佩服。你这个错误下面的两个A、B不是实现了么,一般的数组无论多少维都可以实现(通过对行操作或列操作,行列中还可以操作行、列)。要用for循环实现的一般是对函数要求带有角码的才会用到,因为定义函数不能定义带有角码的函数,说白了就是不能对一个未知的变量名定义角码,像C语言可以对Bi进行定义估计是内部处理方式不同,事实上还是对B(B是已知的变量名)进行的定义。
定义了之后都可以引用的,要看你怎么去引用,光说没用的,实际操作中可能可以变通一下。
2016年04月21日 03点04分 7
其实后面的A\B方式得到的结果不对,我就是为了举这样的例子,说明不知道怎么去用下标角码实现复杂运算和引用。
2016年04月21日 05点04分
回复
准光资料
:我不知道你怎么说结果不对,B与AA的运算都不一样,结果怎么会相同,Ak是每个元素都乘,而你定义AA是只有J列才乘
2016年04月21日 07点04分
@loupoo2 我想赋值成Ai,j,k=i+j*k, 但是用A/B这种通过下标来赋值的方法没办法啊,我随手写个乘以k,就是为了表明差别,说明问题。意思是如何只通过矩阵这种下标的变量,来实现对多维数组的赋值?
2016年04月21日 08点04分
level 2
看来只能用AA程序模式或者A(i,j,k)函数模式,没关系,我只是希望简洁而已,毕竟计算目标才最重要。另一方面,也是感觉函数模式速度好像远没有矩阵模式速度快。
2016年04月21日 05点04分 8
level 15
对应于数组 A(i,j,k)=i+j*k 的两种形式的MC嵌套矩阵:
其一:
2016年04月21日 11点04分 14
level 15
其二:
2016年04月21日 11点04分 17
level 15
直接写成不嵌套的矩阵:
2016年04月21日 12点04分 18
level 15
i、j、k 不相等时:
2016年04月21日 13点04分 20
如果有不用for也可以实现目的算式的方法,我通常就优先采用之。只要能不用for ,我就不用。
2016年04月21日 13点04分
回复 月城公寓寓公:明显就是我需要的完美解答!
2016年04月21日 14点04分
level 15
楼主原文:“程序这种缺乏美感的解决方案”
程序缺乏美感?不敢苟同。编得好的程序,不仅很简洁,而且有结构美和韵律美。
何况有很多、更多的功能(计算)不编程序就无法实现,编程比一个劲地一行一行地列算式要简捷、整洁,易读,便于整块移动、改写。
编与不编程序的区别在Excel中更明显。在Excel中编程序与在单元格中列公式,我更看好编程。
2016年04月21日 14点04分 21
level 15
逐行写算式与编程并不是排斥的关系,而是相辅相成的。应根据具体情况决定使用何种形式。
2016年04月22日 00点04分 22
level 13
月城做得太棒了!
2016年04月22日 14点04分 23
1