将此等式从Matlab转换为TCL

时间:2017-11-10 04:55:19

标签: matlab tcl

我想将这个等式从Matlab转换为TCL,任何人都可以帮忙。

t = 2*pi*rand(n,1);
r = R*sqrt(rand(n,1));
x = x0 + r.*cos(t);
y = y0 + r.*sin(t);

1 个答案:

答案 0 :(得分:1)

虽然有很多相似之处,但MATLAB与Tcl有一个关键区别:它与单个值有关,它可以用于向量,矩阵和张量。这使得翻译代码变得更加复杂。 (除此之外,=映射到set,表达式使用expr计算。)

# Example initial parameters
set n 123
set R 321
set x0 456
set y0 654

# The translation of your code
set x {}
set y {}
set pi 3.1415927
for {set i 0} {$i < $n} {incr i} {
    set t [expr {2 * $pi * rand()}]
    set r [expr {$R * rand()}]
    lappend x [expr {$x0 + $r * cos($t)}]
    lappend y [expr {$y0 + $r * sin($t)}]
}

请注意,通过使用VecTcl等扩展程序包,可以使用比此更短的表单。