我的研究涉及从标量配方到基质配方的铸造问题,反之亦然。有时找到相应的矩阵模式和必要的操作来执行它们可能会变得非常明显并且难以可视化(特别是当得到的矩阵模式很大且稀疏时)。为了验证我的推导,我通常使用MATLAB的sym
变量(允许对它们执行所有数学运算)并检查它们是否相等来实现这两个公式。
我的意思的一个简单例子:
vec = sym('x',[2,1])
a = (3:4)'
vectorResult = a'*vec
scalar1 = sym('x1')
scalar2 = sym('x2')
scalarResult = a(1)*scalar1 + a(2)*scalar2
isequaln(vectorResult,scalarResult)
ans =
1
所以我的问题是在朱莉娅这样做的等效替代方案吗?
目前这是唯一的事情(除了像IDE这样的MATLAB的荒谬之外)阻止我完全迁移到Julia。
答案 0 :(得分:4)
答案 1 :(得分:2)
以上示例的Julia等效形式,在SymPy
包的帮助下:
using SymPy # load SymPy package, you must Pkg.add("SymPy") before
n=10; # vector length
vec=Sym[Sym(symbol(:x,i)) for i in 1:n]; # create the vector of Sym
a=rand(Int,n); # random vector of factors
vectorResult= transpose(a)*vec; # matrix product
scalarResult=[sum([vec[i]*a[i] for i in 1:n])]; # scaler operation
scalarResult==vectorResult # => true