当前位置: 首页>>代码示例>>Java>>正文


Java Index.incr方法代码示例

本文整理汇总了Java中ucar.ma2.Index.incr方法的典型用法代码示例。如果您正苦于以下问题:Java Index.incr方法的具体用法?Java Index.incr怎么用?Java Index.incr使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在ucar.ma2.Index的用法示例。


在下文中一共展示了Index.incr方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。

示例1: setSection

import ucar.ma2.Index; //导入方法依赖的package包/类
/**
 * Set section
 *
 * @param a Array a
 * @param ranges Ranges
 * @param v Array value
 * @return Result array
 * @throws InvalidRangeException
 */
public static Array setSection(Array a, List<Range> ranges, Array v) throws InvalidRangeException {
    Array r = a.section(ranges);
    IndexIterator iter = r.getIndexIterator();
    //int[] current;
    Index index = v.getIndex();
    while (iter.hasNext()) {
        iter.next();
        //current = iter.getCurrentCounter();
        //index.set(current);
        iter.setObjectCurrent(v.getObject(index));
        index.incr();
    }
    r = Array.factory(a.getDataType(), a.getShape(), r.getStorage());
    return r;
}
 
开发者ID:meteoinfo,项目名称:MeteoInfoLib,代码行数:25,代码来源:ArrayMath.java

示例2: percentile

import ucar.ma2.Index; //导入方法依赖的package包/类
/**
 * Returns an estimate of the pth percentile of the values in the array along an axis.
 * @param a Input array
 * @param p The percentile value to compute
 * @param axis The axis
 * @return The pth percentile
 * @throws InvalidRangeException 
 */
public static Array percentile(Array a, double p, int axis) throws InvalidRangeException{
    int[] dataShape = a.getShape();
    int[] shape = new int[dataShape.length - 1];
    int idx;
    for (int i = 0; i < dataShape.length; i++) {
        idx = i;
        if (idx == axis) {
            continue;
        } else if (idx > axis) {
            idx -= 1;
        }
        shape[idx] = dataShape[i];
    }
    Array r = Array.factory(DataType.DOUBLE, shape);
    Index indexr = r.getIndex();
    int[] current;
    for (int i = 0; i < r.getSize(); i++) {
        current = indexr.getCurrentCounter();
        List<Range> ranges = new ArrayList<>();
        for (int j = 0; j < dataShape.length; j++) {
            if (j == axis) {
                ranges.add(new Range(0, dataShape[j] - 1, 1));
            } else {
                idx = j;
                if (idx > axis) {
                    idx -= 1;
                }
                ranges.add(new Range(current[idx], current[idx], 1));
            }
        }
        Array aa = ArrayMath.section(a, ranges);
        double[] v = (double[])aa.get1DJavaArray(Double.class);
        double q = StatUtils.percentile(v, p);
        r.setDouble(i, q);
        indexr.incr();
    }

    return r;
}
 
开发者ID:meteoinfo,项目名称:MeteoInfoLib,代码行数:48,代码来源:StatsUtil.java

示例3: concatenate

import ucar.ma2.Index; //导入方法依赖的package包/类
/**
 * Concatenate two arrays to one array along a axis
 *
 * @param a Array a
 * @param b Array b
 * @param axis The axis
 * @return Concatenated array
 * @throws ucar.ma2.InvalidRangeException
 */
public static Array concatenate(Array a, Array b, Integer axis) throws InvalidRangeException {
    int n = a.getRank();
    int[] shape = a.getShape();
    if (axis == -1) {
        axis = n - 1;
    }
    int nn = shape[axis];
    int[] bshape = b.getShape();
    int[] nshape = new int[n];
    for (int i = 0; i < n; i++) {
        if (i == axis) {
            nshape[i] = shape[i] + bshape[i];
        } else {
            nshape[i] = shape[i];
        }
    }
    Array r = Array.factory(a.getDataType(), nshape);
    Index indexr = r.getIndex();
    Index indexa = a.getIndex();
    Index indexb = b.getIndex();
    int[] current;
    for (int i = 0; i < r.getSize(); i++) {
        current = indexr.getCurrentCounter();
        if (current[axis] < nn) {
            indexa.set(current);
            r.setObject(indexr, a.getObject(indexa));
        } else {
            current[axis] = current[axis - nn];
            indexb.set(current);
            r.setObject(indexr, b.getObject(indexb));
        }
        indexr.incr();
    }

    return r;
}
 
开发者ID:meteoinfo,项目名称:MeteoInfoLib,代码行数:46,代码来源:ArrayUtil.java

示例4: addInt_bak

import ucar.ma2.Index; //导入方法依赖的package包/类
private static Array addInt_bak(Array a, Array b) {
    int broadcast = broadcastCheck(a, b);
    if (broadcast != -1) {
        int[] shape;
        if (broadcast == 0) {
            shape = a.getShape();
        } else {
            shape = broadcast(a, b);
        }
        Array r = Array.factory(DataType.INT, shape);
        Index index = r.getIndex();
        Index aindex = a.getIndex();
        Index bindex = b.getIndex();
        int n = r.getRank();
        int na = a.getRank();
        int nb = b.getRank();
        int[] current;
        for (int i = 0; i < r.getSize(); i++) {
            current = index.getCurrentCounter();
            setIndex(broadcast, aindex, bindex, current, n, na, nb);
            if (a.getInt(aindex) == Integer.MIN_VALUE || b.getInt(bindex) == Integer.MIN_VALUE) {
                r.setInt(i, Integer.MIN_VALUE);
            } else {
                r.setInt(i, a.getInt(aindex) + b.getInt(bindex));
            }
            index.incr();
        }
        return r;
    } else {
        return null;
    }
}
 
开发者ID:meteoinfo,项目名称:MeteoInfoLib,代码行数:33,代码来源:ArrayMath.java

示例5: addInt

import ucar.ma2.Index; //导入方法依赖的package包/类
private static Array addInt(Array a, Array b) {
    int broadcast = broadcastCheck(a, b);
    switch (broadcast) {
        case 0:
            Array r = Array.factory(DataType.INT, a.getShape());
            for (int i = 0; i < a.getSize(); i++) {
                if (a.getInt(i) == Integer.MIN_VALUE || b.getInt(i) == Integer.MIN_VALUE) {
                    r.setInt(i, Integer.MIN_VALUE);
                } else {
                    r.setInt(i, a.getInt(i) + b.getInt(i));
                }
            }
            return r;
        case 1:
            int[] shape = broadcast(a, b);
            r = Array.factory(DataType.INT, shape);
            Index index = r.getIndex();
            Index aindex = a.getIndex();
            Index bindex = b.getIndex();
            int n = r.getRank();
            int na = a.getRank();
            int nb = b.getRank();
            int[] current;
            for (int i = 0; i < r.getSize(); i++) {
                current = index.getCurrentCounter();
                setIndex(aindex, bindex, current, n, na, nb);
                if (a.getInt(aindex) == Integer.MIN_VALUE || b.getInt(bindex) == Integer.MIN_VALUE) {
                    r.setInt(i, Integer.MIN_VALUE);
                } else {
                    r.setInt(i, a.getInt(aindex) + b.getInt(bindex));
                }
                index.incr();
            }
            return r;
        default:
            return null;
    }
}
 
开发者ID:meteoinfo,项目名称:MeteoInfoLib,代码行数:39,代码来源:ArrayMath.java

示例6: addFloat

import ucar.ma2.Index; //导入方法依赖的package包/类
private static Array addFloat(Array a, Array b) {
    int broadcast = broadcastCheck(a, b);
    switch (broadcast) {
        case 0:
            Array r = Array.factory(DataType.FLOAT, a.getShape());
            for (int i = 0; i < a.getSize(); i++) {
                if (Float.isNaN(a.getFloat(i)) || Float.isNaN(b.getFloat(i))) {
                    r.setFloat(i, Float.NaN);
                } else {
                    r.setFloat(i, a.getFloat(i) + b.getFloat(i));
                }
            }
            return r;
        case 1:
            int[] shape = broadcast(a, b);
            r = Array.factory(DataType.FLOAT, shape);
            Index index = r.getIndex();
            Index aindex = a.getIndex();
            Index bindex = b.getIndex();
            int n = r.getRank();
            int na = a.getRank();
            int nb = b.getRank();
            int[] current;
            for (int i = 0; i < r.getSize(); i++) {
                current = index.getCurrentCounter();
                setIndex(aindex, bindex, current, n, na, nb);
                if (Float.isNaN(a.getFloat(aindex)) || Float.isNaN(b.getFloat(bindex))) {
                    r.setFloat(i, Float.NaN);
                } else {
                    r.setFloat(i, a.getFloat(aindex) + b.getFloat(bindex));
                }
                index.incr();
            }
            return r;
        default:
            return null;
    }
}
 
开发者ID:meteoinfo,项目名称:MeteoInfoLib,代码行数:39,代码来源:ArrayMath.java

示例7: std

import ucar.ma2.Index; //导入方法依赖的package包/类
/**
 * Compute standard deviation value of an array along an axis (dimension)
 *
 * @param a Array a
 * @param axis Axis
 * @return Standard deviation value array
 * @throws ucar.ma2.InvalidRangeException
 */
public static Array std(Array a, int axis) throws InvalidRangeException {
    int[] dataShape = a.getShape();
    int[] shape = new int[dataShape.length - 1];
    int idx;
    for (int i = 0; i < dataShape.length; i++) {
        idx = i;
        if (idx == axis) {
            continue;
        } else if (idx > axis) {
            idx -= 1;
        }
        shape[idx] = dataShape[i];
    }
    Array r = Array.factory(DataType.DOUBLE, shape);
    double mean;
    Index indexr = r.getIndex();
    int[] current;
    for (int i = 0; i < r.getSize(); i++) {
        current = indexr.getCurrentCounter();
        List<Range> ranges = new ArrayList<>();
        for (int j = 0; j < dataShape.length; j++) {
            if (j == axis) {
                ranges.add(new Range(0, dataShape[j] - 1, 1));
            } else {
                idx = j;
                if (idx > axis) {
                    idx -= 1;
                }
                ranges.add(new Range(current[idx], current[idx], 1));
            }
        }
        mean = std(a, ranges);
        r.setDouble(i, mean);
        indexr.incr();
    }

    return r;
}
 
开发者ID:meteoinfo,项目名称:MeteoInfoLib,代码行数:47,代码来源:ArrayMath.java

示例8: median

import ucar.ma2.Index; //导入方法依赖的package包/类
/**
 * Compute median value of an array along an axis (dimension)
 *
 * @param a Array a
 * @param axis Axis
 * @return Median value array
 * @throws ucar.ma2.InvalidRangeException
 */
public static Array median(Array a, int axis) throws InvalidRangeException {
    int[] dataShape = a.getShape();
    int[] shape = new int[dataShape.length - 1];
    int idx;
    for (int i = 0; i < dataShape.length; i++) {
        idx = i;
        if (idx == axis) {
            continue;
        } else if (idx > axis) {
            idx -= 1;
        }
        shape[idx] = dataShape[i];
    }
    Array r = Array.factory(DataType.DOUBLE, shape);
    double mean;
    Index indexr = r.getIndex();
    int[] current;
    for (int i = 0; i < r.getSize(); i++) {
        current = indexr.getCurrentCounter();
        List<Range> ranges = new ArrayList<>();
        for (int j = 0; j < dataShape.length; j++) {
            if (j == axis) {
                ranges.add(new Range(0, dataShape[j] - 1, 1));
            } else {
                idx = j;
                if (idx > axis) {
                    idx -= 1;
                }
                ranges.add(new Range(current[idx], current[idx], 1));
            }
        }
        mean = median(a, ranges);
        r.setDouble(i, mean);
        indexr.incr();
    }

    return r;
}
 
开发者ID:meteoinfo,项目名称:MeteoInfoLib,代码行数:47,代码来源:ArrayMath.java

示例9: subDouble

import ucar.ma2.Index; //导入方法依赖的package包/类
private static Array subDouble(Array a, Array b) {
    int broadcast = broadcastCheck(a, b);
    switch (broadcast) {
        case 0:
            Array r = Array.factory(DataType.DOUBLE, a.getShape());
            for (int i = 0; i < a.getSize(); i++) {
                if (Double.isNaN(a.getDouble(i)) || Double.isNaN(b.getDouble(i))) {
                    r.setDouble(i, Double.NaN);
                } else {
                    r.setDouble(i, a.getDouble(i) - b.getDouble(i));
                }
            }
            return r;
        case 1:
            int[] shape = broadcast(a, b);
            r = Array.factory(DataType.DOUBLE, shape);
            Index index = r.getIndex();
            Index aindex = a.getIndex();
            Index bindex = b.getIndex();
            int n = r.getRank();
            int na = a.getRank();
            int nb = b.getRank();
            int[] current;
            for (int i = 0; i < r.getSize(); i++) {
                current = index.getCurrentCounter();
                setIndex(aindex, bindex, current, n, na, nb);
                if (Double.isNaN(a.getDouble(aindex)) || Double.isNaN(b.getDouble(bindex))) {
                    r.setDouble(i, Double.NaN);
                } else {
                    r.setDouble(i, a.getDouble(aindex) - b.getDouble(bindex));
                }
                index.incr();
            }
            return r;
        default:
            return null;
    }                
}
 
开发者ID:meteoinfo,项目名称:MeteoInfoLib,代码行数:39,代码来源:ArrayMath.java

示例10: mulInt

import ucar.ma2.Index; //导入方法依赖的package包/类
private static Array mulInt(Array a, Array b) {
    int broadcast = broadcastCheck(a, b);
    switch (broadcast) {
        case 0:
            Array r = Array.factory(DataType.INT, a.getShape());
            for (int i = 0; i < a.getSize(); i++) {
                if (a.getInt(i) == Integer.MIN_VALUE || b.getInt(i) == Integer.MIN_VALUE) {
                    r.setInt(i, Integer.MIN_VALUE);
                } else {
                    r.setInt(i, a.getInt(i) * b.getInt(i));
                }
            }
            return r;
        case 1:
            int[] shape = broadcast(a, b);
            r = Array.factory(DataType.INT, shape);
            Index index = r.getIndex();
            Index aindex = a.getIndex();
            Index bindex = b.getIndex();
            int n = r.getRank();
            int na = a.getRank();
            int nb = b.getRank();
            int[] current;
            for (int i = 0; i < r.getSize(); i++) {
                current = index.getCurrentCounter();
                setIndex(aindex, bindex, current, n, na, nb);
                if (a.getInt(aindex) == Integer.MIN_VALUE || b.getInt(bindex) == Integer.MIN_VALUE) {
                    r.setInt(i, Integer.MIN_VALUE);
                } else {
                    r.setInt(i, a.getInt(aindex) * b.getInt(bindex));
                }
                index.incr();
            }
            return r;
        default:
            return null;
    }        
}
 
开发者ID:meteoinfo,项目名称:MeteoInfoLib,代码行数:39,代码来源:ArrayMath.java

示例11: mulFloat

import ucar.ma2.Index; //导入方法依赖的package包/类
private static Array mulFloat(Array a, Array b) {
    int broadcast = broadcastCheck(a, b);
    switch (broadcast) {
        case 0:
            Array r = Array.factory(DataType.FLOAT, a.getShape());
            for (int i = 0; i < a.getSize(); i++) {
                if (Float.isNaN(a.getFloat(i)) || Float.isNaN(b.getFloat(i))) {
                    r.setFloat(i, Float.NaN);
                } else {
                    r.setFloat(i, a.getFloat(i) * b.getFloat(i));
                }
            }
            return r;
        case 1:
            int[] shape = broadcast(a, b);
            r = Array.factory(DataType.FLOAT, shape);
            Index index = r.getIndex();
            Index aindex = a.getIndex();
            Index bindex = b.getIndex();
            int n = r.getRank();
            int na = a.getRank();
            int nb = b.getRank();
            int[] current;
            for (int i = 0; i < r.getSize(); i++) {
                current = index.getCurrentCounter();
                setIndex(aindex, bindex, current, n, na, nb);
                if (Float.isNaN(a.getFloat(aindex)) || Float.isNaN(b.getFloat(bindex))) {
                    r.setFloat(i, Float.NaN);
                } else {
                    r.setFloat(i, a.getFloat(aindex) * b.getFloat(bindex));
                }
                index.incr();
            }
            return r;
        default:
            return null;
    }        
}
 
开发者ID:meteoinfo,项目名称:MeteoInfoLib,代码行数:39,代码来源:ArrayMath.java

示例12: mulDouble

import ucar.ma2.Index; //导入方法依赖的package包/类
private static Array mulDouble(Array a, Array b) {
    int broadcast = broadcastCheck(a, b);
    switch (broadcast) {
        case 0:
            Array r = Array.factory(DataType.DOUBLE, a.getShape());
            for (int i = 0; i < a.getSize(); i++) {
                if (Double.isNaN(a.getDouble(i)) || Double.isNaN(b.getDouble(i))) {
                    r.setDouble(i, Double.NaN);
                } else {
                    r.setDouble(i, a.getDouble(i) * b.getDouble(i));
                }
            }
            return r;
        case 1:
            int[] shape = broadcast(a, b);
            r = Array.factory(DataType.DOUBLE, shape);
            Index index = r.getIndex();
            Index aindex = a.getIndex();
            Index bindex = b.getIndex();
            int n = r.getRank();
            int na = a.getRank();
            int nb = b.getRank();
            int[] current;
            for (int i = 0; i < r.getSize(); i++) {
                current = index.getCurrentCounter();
                setIndex(aindex, bindex, current, n, na, nb);
                if (Double.isNaN(a.getDouble(aindex)) || Double.isNaN(b.getDouble(bindex))) {
                    r.setDouble(i, Double.NaN);
                } else {
                    r.setDouble(i, a.getDouble(aindex) * b.getDouble(bindex));
                }
                index.incr();
            }
            return r;
        default:
            return null;
    }          
}
 
开发者ID:meteoinfo,项目名称:MeteoInfoLib,代码行数:39,代码来源:ArrayMath.java

示例13: divInt

import ucar.ma2.Index; //导入方法依赖的package包/类
private static Array divInt(Array a, Array b) {
    int broadcast = broadcastCheck(a, b);
    switch (broadcast) {
        case 0:
            Array r = Array.factory(DataType.INT, a.getShape());
            for (int i = 0; i < a.getSize(); i++) {
                if (a.getInt(i) == Integer.MIN_VALUE || b.getInt(i) == Integer.MIN_VALUE) {
                    r.setInt(i, Integer.MIN_VALUE);
                } else {
                    r.setInt(i, a.getInt(i) / b.getInt(i));
                }
            }
            return r;
        case 1:
            int[] shape = broadcast(a, b);
            r = Array.factory(DataType.INT, shape);
            Index index = r.getIndex();
            Index aindex = a.getIndex();
            Index bindex = b.getIndex();
            int n = r.getRank();
            int na = a.getRank();
            int nb = b.getRank();
            int[] current;
            for (int i = 0; i < r.getSize(); i++) {
                current = index.getCurrentCounter();
                setIndex(aindex, bindex, current, n, na, nb);
                if (a.getInt(aindex) == Integer.MIN_VALUE || b.getInt(bindex) == Integer.MIN_VALUE) {
                    r.setInt(i, Integer.MIN_VALUE);
                } else {
                    r.setInt(i, a.getInt(aindex) / b.getInt(bindex));
                }
                index.incr();
            }
            return r;
        default:
            return null;
    }
}
 
开发者ID:meteoinfo,项目名称:MeteoInfoLib,代码行数:39,代码来源:ArrayMath.java

示例14: cdiff

import ucar.ma2.Index; //导入方法依赖的package包/类
/**
 * Performs a centered difference operation on a grid data along one
 * dimension direction
 *
 * @param data The grid data
 * @param dimIdx Direction dimension index
 * @return Result grid data
 */
public static Array cdiff(Array data, int dimIdx) {
    Array r = Array.factory(DataType.DOUBLE, data.getShape());
    Index index = data.getIndex();
    Index indexr = r.getIndex();
    int[] shape = data.getShape();
    int[] current, cc;
    double a, b;
    for (int i = 0; i < r.getSize(); i++) {
        current = indexr.getCurrentCounter();
        if (current[dimIdx] == 0 || current[dimIdx] == shape[dimIdx] - 1) {
            r.setDouble(indexr, Double.NaN);
        } else {
            cc = Arrays.copyOf(current, current.length);
            cc[dimIdx] = cc[dimIdx] - 1;
            index.set(cc);
            a = data.getDouble(index);
            cc[dimIdx] = cc[dimIdx] + 2;
            index.set(cc);
            b = data.getDouble(index);
            if (Double.isNaN(a) || Double.isNaN(b)) {
                r.setDouble(indexr, Double.NaN);
            } else {
                r.setDouble(indexr, a - b);
            }
        }
        indexr.incr();
    }

    return r;
}
 
开发者ID:meteoinfo,项目名称:MeteoInfoLib,代码行数:39,代码来源:ArrayMath.java

示例15: divDouble

import ucar.ma2.Index; //导入方法依赖的package包/类
private static Array divDouble(Array a, Array b) {
    int broadcast = broadcastCheck(a, b);
    switch (broadcast) {
        case 0:
            Array r = Array.factory(DataType.DOUBLE, a.getShape());
            for (int i = 0; i < a.getSize(); i++) {
                if (Double.isNaN(a.getDouble(i)) || Double.isNaN(b.getDouble(i))) {
                    r.setDouble(i, Double.NaN);
                } else {
                    r.setDouble(i, a.getDouble(i) / b.getDouble(i));
                }
            }
            return r;
        case 1:
            int[] shape = broadcast(a, b);
            r = Array.factory(DataType.DOUBLE, shape);
            Index index = r.getIndex();
            Index aindex = a.getIndex();
            Index bindex = b.getIndex();
            int n = r.getRank();
            int na = a.getRank();
            int nb = b.getRank();
            int[] current;
            for (int i = 0; i < r.getSize(); i++) {
                current = index.getCurrentCounter();
                setIndex(aindex, bindex, current, n, na, nb);
                if (Double.isNaN(a.getDouble(aindex)) || Double.isNaN(b.getDouble(bindex))) {
                    r.setDouble(i, Double.NaN);
                } else {
                    r.setDouble(i, a.getDouble(aindex) / b.getDouble(bindex));
                }
                index.incr();
            }
            return r;
        default:
            return null;
    }             
}
 
开发者ID:meteoinfo,项目名称:MeteoInfoLib,代码行数:39,代码来源:ArrayMath.java


注:本文中的ucar.ma2.Index.incr方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。