mathematica 发表于 2011-2-14 15:17:23

如何用mathematica实现从几个向量到一个矩阵的转化?

假设只有两个向量
a=
b=
形成的矩阵是
M=[
a1,b1
a1,b2
a1,b3
a2,b1
a2,b2
a2,b3
a3,b1
a3,b2
a3,b3
]
我是按照matlab的语法写成的,
如果是三个向量的话,
M的每一行等于=
其中i循环最慢
i循环第二慢
k循环最快.

我当然知道这个可以使用几重循环就可以搞定,但是
当向量变多的时候,循环就会特别的慢!
不知道谁能搞出高效率的代码.
使用matlab或者mathematica!

hujunhua 发表于 2011-2-14 15:41:00

求两个向量的直积么?

mathematica 发表于 2011-2-14 15:48:24

求两个向量的直积么?
hujunhua 发表于 2011-2-14 15:41 http://bbs.emath.ac.cn/images/common/back.gif
不知道直积是什么意思
矩阵的列数等于向量的个数,
矩阵的行数等于所有向量的长度的乘积,
你可以把你的代码先写出来看看

hujunhua 发表于 2011-2-14 17:02:11

a={a, b, c};b={1,2,3};
Tuples[{a, b}] // MatrixForm

hujunhua 发表于 2011-2-14 17:08:44

不过,直积一般是以张量的方式排列的a={a, b, c};b={1,2,3};
Outer // MatrixForm

wayne 发表于 2011-2-14 17:38:49

5# hujunhua Tuples[{{a, b, c}, {1, 2, 3}}]Flatten, 1]Distribute[{{a, b, c}, {1, 2, 3}}, List]
页: [1]
查看完整版本: 如何用mathematica实现从几个向量到一个矩阵的转化?