如何将Matlab的点运算符转换为R?

时间:2014-12-23 09:07:12

标签: r matlab

Matlab有一组点运算符,例如.*./.^。这些运算符中的每一个都由点和普通代数运算符组成。 我想将这些翻译成R:

col = round(r0 + (j/k) * lambda .* cos(pi/6))+1;
ro    = 700 - round(s0 - (j/k) * sin(phi)./cos(pi/6))
col = min(col):1:max(col)
ro    = min(ro):1:max(ro)

请帮忙

2 个答案:

答案 0 :(得分:4)

在MATLAB中,与矩阵运算.*(矩阵乘法)相比,点运算符./.^*表示逐元素运算符,{{1 (求解方程组xA = B代表x),/(A * A ... * A)。

在R中,运算符^*/表示按元素运算,而使用^进行矩阵乘法。

答案 1 :(得分:3)

您可以将代码行转换为字符并使用gsub

a <- "col = round(r0 + (j/k) * lambda .* cos(pi/6))+1;"
a <- gsub("\\.","",a)

你可以在一个函数中包装。

所以,这是一个实现它的功能,

DotOut  <- function(x) {
 gsub("\\.","",x)
}

然后,您可以在其中一个应用函数中使用此函数。