1

我正在做的一个简单示例如下:

s := t*0.2:
b := matrix([0.5,0.6,0.1]):
f := matrix([sin(s),cos(s),s]):
X := transpose(b)*(f);
plotfunc2d(X,t=-2*PI..2*PI);

错误是:

Error: Expecting an arithmetical expression or a function. Got a 'Dom::Matrix()' for attribute 'Function' in the 'Function2d' object.

所以,我需要将类型从转换Dom::MatrixFunction. 我努力了:

coerce(X,DOM_EXPR);

我知道,这很简单:

s := t*0.2:
x := 0.5*sin(s)+0.6*cos(s)+0.1*s;
plotfunc2d(x,t=-2*PI..2*PI);

有没有办法转换这些类型?

4

1 回答 1

1

虽然变量X本身是 a DOM::Matrix(),但它包含的单个元素是一个算术表达式,因此您需要将元素本身传递给 plot 函数:

plotfunc2d(X[1],t=-2*PI..2*PI);
于 2016-02-26T17:37:29.457 回答