【转帖】理解MC的值域变量、序列和向量
mathcad吧
全部回复
仅看楼主
level 12
朱老剑客 楼主
本文是Stuart Bruff于2011年写的,Mike Armstrong做了收集和补充,Werner Exinger做成了pdf文件。
此文研究透彻,肯定对大家有用。但
文章太长,我就不翻译了。
原文网址:http://communities.ptc.com/docs/DOC-6073
pdf版国内下载地址:http://1000eb.com/x1vt
2014年06月20日 01点06分 1
level 12
老朽今年八十有二,虽未“昏庸”,确已“老迈”。近几月来常感体力不支,但依
然常到各个MC论坛转转。特别是百度mathcad吧,还保持每日必到。看到这个吧在
剑客老弟精心打理下,如此兴旺红火,实在忍不住要来感受一下,尽管回帖次数日
益减少,但还是从吧友的各种真知灼见中,获益不浅。
今天,精神稍好,看见剑客老弟转贴的英文“理解MC的值域变量、序列和向
量”,觉得老朽早期用中文写过一篇“MC的值域变量与矢量的区别与转换”,也
许对初学者有些帮助。
2014年06月26日 01点06分 2
zpz老师您辛苦了,感谢您多年来对我们的指导!您身体健康是我们所有人的福气啊! 祝您身体健康,生活愉快!
2014年06月26日 03点06分
祝福张老师健康长寿。Mathcad吧也是您精心打理的花园,欢迎您来赏花。
2014年06月26日 03点06分
level 12
朱老剑客 楼主
欢迎您常来,我们都是您的学生、您的朋友。祝您能在MC吧欢度晚年哈!祝您身体硬硬朗朗的!
2014年06月26日 02点06分 3
level 13
看了zpz老师的帖子,对于值域变量和向量我的理解是这样的,不知对否:
值域变量是“一个”——不能分开索引,而且“依序”(间隔)排列
而向量是“一组”——可以分开索引,单独使用,间隔未必固定
2014年06月26日 03点06分 4
OK!
2014年06月26日 06点06分
level 15
前几天朱老师要求我不用程序板时,我体会到,值域变量是一组有一定关系的数列,不能直接作为向量使用,需要用matrix()转换。“算法1_采用递归算法”就是用的这样的转换。其实二者在直观上还是有区别,向量有"镶边",另一个没有。
2014年06月26日 03点06分 5
“镶边”!比喻十分形象化。 你和LNS都是本吧中坚。
2014年06月26日 06点06分
月城!团结第一啊!这MC吧不是我开的,来这儿的老朋友都是原委。我自荐当了这个论坛的管理员就想把这个论坛搞好,帮助大家玩儿高兴。可能是我这段时间脚伤在家养病无聊就在网上说话多了些,还有半个月我就可以出院上班了,到时候谁有闲工夫谁来吧。咱们不能“外道”呀!
2014年06月26日 09点06分
level 12
朱老剑客 楼主
月城!团结第一啊!这MC吧不是我开的,来这儿的老朋友都知道原委。我自荐当了这个论坛的管理员就想把这个论坛搞好,帮助大家玩儿高兴。可能是我这段时间脚伤在家养病无聊就在网上说话多了些,还有半个月我就可以出院上班了,到时候谁有闲工夫谁来吧。咱们不能“外道”呀!
2014年06月26日 09点06分 6
level 15
朱老师:到吧里来,肯定团结第一。我没有挑拨的意思,我只是说,我是“票友”,来玩玩的。没有其它意思。比起众多先行者,我知道得实在太少。如果,吧友理解有其它意思,在此衷心道歉。既然认为我的帖子不妥,我把它删了。
2014年06月26日 11点06分 7
我觉得,“玩儿”很形象,符合我的心境,所以喜欢用。
2014年06月26日 11点06分
朱老师安心养伤。
2014年06月26日 12点06分
回复 月城公寓寓公 :啊……你删了自己的话,弄得我的话架空了。不过哈,恭喜你升为“铁哥们儿”!MC吧的铁哥们儿,哈哈。
2014年06月26日 12点06分
并没有需求要我用MC或其它语言编程,纯粹是喜欢做练练脑。得益于ZPZ老师,您和LNSZDZG老师的无私帮助。看吧友们的新旧贴揣摩、学习。到MC吧以来,收获颇多。 谢谢诸位!
2014年06月26日 12点06分
level 11
在MP里,ranges和vector的区别已经不大了,都能用向量指针定位元素了
2014年06月27日 02点06分 8
举个例子,截个图,详细说说吧。
2014年06月27日 03点06分
level 11
2014年06月27日 03点06分 9
好像是因为我加了个等号
2014年06月27日 03点06分
回复 jerryyzh728 :嗯,是因为你加了个等号,让MC对值域变量进行运算了。MC、MP在加了等号之后就开始即时计算这点没什么差别。非常谢谢你来MC吧玩儿,欢迎常来哈!
2014年06月27日 03点06分
回复 朱老剑客 :是啊,MC里面加等号也行,多谢吧主指教!
2014年06月27日 03点06分
这里是因为下角标那里用了运算符里的矩阵索引符号
2024年03月20日 03点03分
level 11
我也谈谈自己对“值域变量”的认识吧。
关于值域变量的种种表现,不能将计算结果赋值给变量,不能索引,等等在 mathcad 中与向量不一样的的地方大家都已经很清楚,我就不讲这方面的了。
我理解,这些现象核心的原因是——值域变量不是变量,而是"
过程",一个迭代过程的标记。
这话的意思是,值域变量在 mathcad 中的作用是向计算机标记:这里有一个迭代过程。不过要等到使用它的时候,再开始迭代。
这样可以解释为何出现那些现象,比如下面这些涉及值域变量的计算,全部都可以转换成for的迭代:
2015年06月01日 15点06分 10
说成是“迭代”过程不准确,应当是“遍历”过程。
2015年06月02日 14点06分
level 11
mathcad 中将值域变量这个标志转化成迭代过程,只发生在对值域变量开始计算或者赋值时,当仅写出值域时是不参与计算的。
所以要区分【值域变量】和【值域】(不是函数的值域)
如下图,用【值域变量】 i 可以得到迭代结果,而用【值域】1..2 做下标则得不到迭代结果
由于【值域变量】只是一个标志,没有将这个标志转换成迭代过程时,仅使用【值域】是不会产生迭代的,并且两个看上去完全一样的【值域】也不会逻辑相等。
如果逻辑等号的两边是【值域】和【值域变量】,那么只会将【值域变量】转换成迭代过程,如下图所示,(1..2)=i 的运算过程应该是 (1..2)=1 、(1..2)=2,所以结果是两个0,而(1..2)=j 的结果则是 3 个0,因为 j 被转换成迭代过程了, (1..2)=1 、(1..2)=2、(1..2)=3
同样
但也有例外——当把【值域】作为自变量时、当直接在【值域】后面写等号时(会有很有意思的结果)
有意思的结果是,值域变量或值域后如果有等号,那么结果是可以作为向量赋值给变量的。
所以,我觉得将【值域变量】解释为一种迭代标志,可以解释和帮助认识它在 mathcad 中的特性。
2015年06月01日 15点06分 11
截图清晰,表述明白,研究丰富,真心好啊![哈哈]
2015年06月09日 11点06分
level 12
朱老剑客 楼主
最后的那两个,f(1..2)和N:=1..2=,不错!如此MC的编程又可以更灵活一些了哈。
2015年06月01日 16点06分 12
不行,编程的时候输入等号会被视为对整个编程求值。
2015年06月02日 11点06分
level 12
朱老剑客 楼主
你还可以再探讨一下值域变量在程序板和符号计算中的性质 :)
2015年06月01日 16点06分 13
level 11
使用符号计算等号,我找到的唯一区别就是
其他方面尚未发现不同
在编程板中使用【值域变量】的话,会出现内部迭代,最直观的表现就是不管有没有使用求值等号,都会把迭代结果显示出来。使用【值域】的话,则不会如此。
关于值域变量,我这里已没有更多的了解了。
2015年06月02日 11点06分 14
1