level 1
帝国犀利哥
楼主
我感觉MMA可以改名叫{}语言,这个{}对初学者来说,太多太多的坑了。
第一个坑,{1,2},你以为它是一个1X2的矩阵,也就是传统语言里面那种一行的数组,错,MMA里面它是一个2X1的矩阵,要想得到真正的一维数组,要写成{{1,2}},也就是再套一对{}。
第二个坑,函数调用的时候,{}层数必须要数清楚,否者结果就是错的。比如
Transpose[{{{1,2},{3,4}}}],很简单的转置操作,你以为它的结果是{{{1,3},{2,4}}},错,结果是什么都不变,{{{1,2},{3,4}}}。因为多了一层{}
接下来换种方式,定义m1={{1,2}},m2={{3,4}}。
Transpose[{m1,m2}],中套了,这样就会和上面一样,输出什么都不变的结果。而Tr函数又必须要求参数套上{}作为一个组传进去,所以这个套对这样两个矩阵的混合转置,还是一点办法都么有。。
MMA,酷刑语言
2022年06月26日 08点06分
1
第一个坑,{1,2},你以为它是一个1X2的矩阵,也就是传统语言里面那种一行的数组,错,MMA里面它是一个2X1的矩阵,要想得到真正的一维数组,要写成{{1,2}},也就是再套一对{}。
第二个坑,函数调用的时候,{}层数必须要数清楚,否者结果就是错的。比如
Transpose[{{{1,2},{3,4}}}],很简单的转置操作,你以为它的结果是{{{1,3},{2,4}}},错,结果是什么都不变,{{{1,2},{3,4}}}。因为多了一层{}
接下来换种方式,定义m1={{1,2}},m2={{3,4}}。
Transpose[{m1,m2}],中套了,这样就会和上面一样,输出什么都不变的结果。而Tr函数又必须要求参数套上{}作为一个组传进去,所以这个套对这样两个矩阵的混合转置,还是一点办法都么有。。
MMA,酷刑语言







