请教一个关于mathcad插入excel但excel内有运算关系的问题
mathcad吧
全部回复
仅看楼主
level 3
trumanmar 楼主
先阐述一下我想做的运算,因为我要做的是一个440*440的一个矩阵,其中矩阵元素都是电感电容的s域表达方式(s*L以及1/s*C)这种。尝试过matlab,但是matlab的矩阵逆运算基本符号预算超过6阶以后就老是出现fail。所以转而求助mathcad。
因为这个很大的矩阵(先命名为矩阵A),我还需要一些他的运算,比如逆矩阵运算等等,所以我想就以符号矩阵的形式插入进来,可是excel的乘号就是*这个样子,插入进来后也是*这样,与mathcad实际的乘号是不同的。截图如下:
这个矩阵的内容其实就是电感电容的s域表达方式,那么这些乘号怎么改动呢,双击这个表格就直接回到excel里边修改了。截图只是一个3*3的矩阵简易图示。因为之后还要用到这个矩阵A。还有一个问题插入时,输入我选的是0,输出选的1,告诉我值域无效,这个问题我会自己再详细查一下吧的类似问题自己找找答案。请教一下各位大佬。
2017年12月17日 06点12分 1
level 15
建议您把https://tieba.baidu.com/p/4182576828中的内容仔细读懂。您就会知道您的问题应该如何解决了。您没把Mathcad和Excel的相互关系搞清楚,所以提出的运算设计方案本身就欠可行性。在Excel中怎么做,甚至用Excel VBA编程来计算,并不影响数据在Mathcad中的运作。二者可以轻松交换数据。换句话说,您尽可以在Excel中搞出各种各样的计算,而在这些计算中所用的公式,没有必要照搬入mathcad中计算,只要把数据引入Mathcad中就行了。反过来,从Mathcad到Excel也是如此。您尽可以在Mathcad中玩各种花样,只要把计算结果引入Excel中就行了,没有必要把计算公式也搬过去。二者的数据完全可以同步计算和变化。
2017年12月18日 03点12分 2
@月城翁 感谢月城公,您给的链接我在发帖前看过,确实我应该先有一个具体的计算结果再考虑导入mathcad中。mathcad用了有一段时间,只是之前一只只用到一些基本的计算,对这个工具其实还是很生疏。感谢您的帮助。我看贴吧规则好像在一定时间内自己不能删帖,过段我会删掉,再次感谢。
2017年12月18日 04点12分
level 15
事实上,您也可以不用Excel,直接用Mathcad完成您的计算。假设用*s 的矩阵是A,用/s的矩阵是B。如果两矩阵的行数相同,则C:=augment(A*s,B/s);如果两矩阵的列数相同,则D:=stack(A*s,B/s)。如果*s和/s是混合分布的,只要有规律可循,可用matrix()函数定义矩阵。
总之,既可以与Excel联动,也可以单独使用Mathcad。Mathcad计算矩阵是很方便的。因为矩阵和数组在MC中是同一个东西,只是写法不同。
其实,用Excel也可以计算矩阵的逆运算,只是要用VBA编程,太麻烦。
本帖没必要删除,可供后学者学习。
2017年12月18日 07点12分 3
是的,根据月城公的提示,我感觉可能matrix这个函数会比较适用。我自己好好学习一下这个函数。因为这个矩阵是440行440列的,这个大矩阵里边用*s和/s的地方确实有规律,比如/s的全部出现在对角线上2,4,6.........上,而*s相对麻烦些对角线上非对角线上都有(就是对角线上都是自感,非对角线上是互感)。
2017年12月18日 07点12分
今早搜索了贴吧里边出现过的帖子,我尝试了用if语句定义矩阵元素,也尝试了用for循环语句定义矩阵元素,都出现了错误,可能不是太适合这种情况,我现在回头仔细看看这个matrix函数的用法吧,矩阵太大,求逆以及别的运算只能求助mathcad了,其他工具软件我会的基本做不了。感谢月城公。
2017年12月18日 07点12分
level 15
您一楼的贴图在MC中的实现方法之一:
2017年12月18日 07点12分 4
也可以用两重for循环来实现。
2017年12月18日 07点12分
@月城翁 感谢月城公,我刚刚回复完您的上个留言,您就已经把例子展示出来了。我现在马上就按照您的这个方法试一试,唯一有点点小区别的就是,这个s我是想纯粹当个符号用的。一会儿我把我用循环语句的做法也贴出来,虽然提示有点错误。
2017年12月18日 08点12分
s和X可以从Excel中读取数据。s纯粹当符号使用,不大好办。MC是赋值后计算的。
2017年12月18日 08点12分
s纯粹当符号使用,那就只能用字符串。
2017年12月18日 08点12分
level 15
2017年12月18日 08点12分 5
这样就无法求矩阵的逆了。
2017年12月18日 08点12分
最好是,用控件,输入s的值,这样矩阵中的s的值可以随时改变。
2017年12月18日 08点12分
@月城翁 刚刚在上电实验,我现在先用月城公你刚才说的方法我试试看。其实这个s就是s域的那个符号。之所以想把它先当做符号,我最后想通过这个矩阵求逆等运算后,求得一个结点电压的表达式,这个表达式是个含有s的高阶表达式,最后我把这个s=2*π*f*i,而f=1.......1000000,画出伯德图。
2017年12月18日 08点12分
@月城翁 我一会儿给s这么定义,让s=1........1000000试试看行不行,按照感觉应该是不行,不过我先试试月城公的这几个展示的方法,感谢月城公。
2017年12月18日 08点12分
level 15
2017年12月18日 08点12分 6
level 15
2017年12月18日 08点12分 7
level 3
trumanmar 楼主
在尝试月城公给建议的几种方法前,我先贴出自己利用for循环的做法,虽然没有做出来,图片中那个红字4的地方,他提示我需要一个名字。这里,之所以需要把s当做符号是为了方便矩阵的计算,因为这里我会用到这个矩阵的逆运算以及与其他矩阵的一些乘除法。最终得到一个列矩阵,比如A,其中A中的某些元素值是带有符号s的高阶表达式(比如类似k*s^8+q*s^6+e*s^3+1),这时候我再把s=1i*2*π*f,定义f的范围如1......1000000,画出这个表达式的伯德图。
2017年12月18日 09点12分 8
这个办法是我查找了吧里边曾经出现的几个关于循环语句的用法和例子自己尝试做的,以及看了help帮助之后的尝试。虽然没成,不过也算自己动手尝试,我先用用月城公的办法先。
2017年12月18日 09点12分
您没有定义函数f(),就开始使用了。MC要求先赋值或者先定义,后续计算才能使用。
2017年12月18日 09点12分
level 15
2017年12月18日 09点12分 9
感谢月城公,看这个例子明白了,如何给矩阵元素在较复杂情况下的赋值。我赶紧练练手。
2017年12月18日 09点12分
如果您中间有若干其它运算,最后还要变成一个列向量,最好还是自定义一个以s做自变量的函数,把后续计算都纳入函数中,或者引用这个函数。
2017年12月18日 09点12分
见7楼
2017年12月18日 09点12分
level 15
8楼,您自己的例子:
2017年12月18日 10点12分 12
感谢月城公,您7楼的例子和这一楼的例子真是非常受用了,我想我也可以换个思路,其实主要还是mathcad会的比较浅,这几天要多琢磨练习一下了。按照你给的这几步提示和例子,我尝试一下。
2017年12月18日 11点12分
level 15
几个帖子都被百度删去了,理由是违规,纯技术的帖子,也不知哪里违规了。
2017年12月20日 02点12分 21
level 15
440阶的方阵,耗时约259秒。
2017年12月20日 16点12分 22
感谢月城公,出差几天,刚刚回来。想到前几天自己想的太单一了,其实我也可以多命名几个符号,这样,等这个很大的矩阵运算完成后,我再给这几个符号分别赋值,这样就相对问题简单化了。我先试试月城公最后的这个例子。有进度我再贴出来。
2017年12月24日 06点12分
level 3
trumanmar 楼主
月城公,发生了一件还挺奇怪的事情。
2017年12月24日 15点12分 23
最后说,矩阵奇异无法计算。。。
2017年12月24日 15点12分
我现在的想法就是,利用月城公的这段程序,分别算出三个矩阵,M,T,P,而后通过比如M*T(-1)*P之后得到一个列向量,然后赋值给s,例如1...10.....10000,然后计算1000次,利用这1000次计算所得值进行画图。
2017年12月24日 15点12分
level 15
你到底要干什么,我一直看不明白。您把您的流程从头到尾的每一步都写清楚,写完整。
奇异矩阵,请翻书或在网上搜索,查一下定义,23楼|Y|=0,没有逆矩阵。
您没有看懂22楼。程序板中的s ,是0,1...440*440的自然数数列,稍加改动,就是公差为10的等差数列。22楼的写法,少了两个otherwise ,原因在于先给t赋值为,s*L ,然后用if的条件来决定是否更改为其它值。s+10^-11是避免分母为零。rnd()是随机函数。
23楼左边的程序板,您前面已经列出过,函数f()没有事先定义,是无法执行的。并且那种写法太冗繁,我一般都用mod()来代替。
2017年12月25日 01点12分 24
level 15
纠错,22楼的s 是自然数数列乘以2*π ,即公差为2*π的等差数列。把2*π改成10就是公差为10的等差数列。
2017年12月25日 01点12分 25
月城公,我今天用了点时间,把我想用mathcad做的事,仔细说明了一下,我用截图的方式这就发出来。内容编辑的话,我还是用了mathcad,虽然有些地方用法是不对的,我是想用这个说明会比较容易看一些。
2017年12月26日 13点12分
本来可以把几张图片放在一个回复里边,但是我想那样图片太小。
2017年12月26日 13点12分
1 2 尾页