...
And we get the following grid
x\y | 10 | 20 | 30 |
---|---|---|---|
0 | - | - | - |
1 | - | - | - |
2 | 1 | 2 | 3 |
VariableIndexRangesFilters
They are the same as VariableIndexRangeFilters except that now multiple ranges can be defined in one filter.
VariableReduceFilter
Can be used to reduce function in dimensionality. For example a two dimension (two-argument) function can be reduced to a one dimensional (one-argument) function. This is only possible if the dimension that is being reduced has a single value.
Code Block |
---|
[Test]
IVariable<int> x = new Variable<int>("x");
IVariable<int> y = new Variable<int>("y");
IVariable<int> fx = new Variable<int>("fx");
fx.Arguments.Add(x);
fx.Arguments.Add(y);
x.SetValues(new[] {1, 2, 3});
y.SetValues(new[] {1,2});
fx[3, 1] = 20;
var reducedFunction = fx.Filter(new VariableValueFilter<int>(y, 1), new VariableReduceFilter(y));
//the function 'lost' an argument
Assert.AreEqual(1, reducedFunction.Arguments.Count);
Assert.AreEqual(3, reducedFunction.Values.Count);
Assert.AreEqual(20, reducedFunction.Values[2]);
|
This filter is used for example to get a timeseries for a timedependent coverage (reducing location) or to get a timeIndependent coverage out of a timedependent (reducing time)