📄 template.java
字号:
package jmathlib.toolbox.general;
/* This file is part or JMathLib
* author: 2005/xx/xx
* */
import jmathlib.core.tokens.*;
import jmathlib.core.tokens.numbertokens.DoubleNumberToken;
import jmathlib.core.functions.ExternalFunction;
/**An external function for computing a mesh of a matrix */
public class template extends ExternalFunction
{
/**returns two matrices
* @param operands[0] = x values (e.g. [-2:0.2:2])
* @param operands[1] = y values (e.g. [-2:0.2:2])
* @return [X,Y] as matrices */
public OperandToken evaluate(Token[] operands)
{
// one operand (e.g. [x,y]=template([-2:0.2:2],[-2:0.2:2]) )
if (getNArgIn(operands)!=2)
throwMathLibException("template: number of input arguments != 2");
// Check number of return arguments
if (getNoOfLeftHandArguments()!=2)
throwMathLibException("template: number of output arguments != 2");
if ( !(operands[0] instanceof DoubleNumberToken) ||
!(operands[0] instanceof DoubleNumberToken) )
throwMathLibException("template: works only on numbers");
// get data from arguments
double[][] x = ((DoubleNumberToken)operands[0]).getReValues();
double[][] y = ((DoubleNumberToken)operands[1]).getReValues();
if ((x.length != 1) ||
(y.length != 1) )
throwMathLibException("template: works only row vectors");
int sizeX = x[0].length;
int sizeY = y[0].length;
double[][] X = new double[sizeY][sizeX];
double[][] Y = new double[sizeY][sizeX];
for (int i=0; i<sizeY; i++)
{
for (int j=0; j<sizeX; j++)
{
X[i][j] = x[0][j];
Y[i][j] = y[0][i];
}
}
OperandToken values[][] = new OperandToken[1][2];
values[0][0] = new DoubleNumberToken(X);
values[0][1] = new DoubleNumberToken(Y);
return new MatrixToken( values );
} // end eval
}
/*
@GROUP
General
@SYNTAX
answer = template (value)
@DOC
Returns the sign of value.
@EXAMPLES
<programlisting>
SIGN(-10)=-1
SIGN(10)=1
</programlisting>
@NOTES
@SEE
template
*/
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -