在java中有没有MATLAB函数的对应部分?

时间:2013-04-18 17:05:04

标签: java matlab

我试图在java中使用numel(Matlab中提供的功能)。 它们是否可以在java中使用此函数的任何实现?

4 个答案:

答案 0 :(得分:2)

我不确定这是否是您希望numel工作的方式,但在这里您的版本很少:

version1 - 适用于{{1},{2,3}}

等不规则大小的数组

这个方法将迭代计算它们的数组的所有元素。

public static int numel(Object array) {
    if (array == null)
        return 1;// I will count nulls as elements since new String[10] is
                    // initialized with nulls 
    int total = 1;
    if (array.getClass().isArray()) {
        total = 0;
        int length = java.lang.reflect.Array.getLength(array);
        for (int index = 0; index < length; index++) {
            total += numel(java.lang.reflect.Array.get(array, index));
        }
    }
    return total;
}

version2 - 用于常规大小的数组,如new String [2] [3] [4]

此方法仅使用数组中不同级别的第一行的大小来获取它的大小,假设同一级别的行具有相同的大小

public static int regularNumel(Object array) {
    if (array == null)
        return 1;
    int total = 1;
    if (array.getClass().isArray()) {
        int length = java.lang.reflect.Array.getLength(array);
        if (length > 0) {
            Object row = java.lang.reflect.Array.get(array, 0);
            if (row == null || !row.getClass().isArray())
                return length;
            else //now we know that row is also array
                return length * regularNumel(row);
        } else
            return 0;
    }
    return total;
}

答案 1 :(得分:-1)

matlab的数字函数

n = numel(A)返回数组A中的元素数n。

你可以使你的

int arraycount(int a[])
    {
    int counter;
    for(int i=0;i<a.length;i++)
    {
    counter++;
    }
    return counter;
    }

答案 2 :(得分:-1)

class main{
    public static void main (String[] args){
    // numel returns the number of array elements, as does .length in Java.
    int[] testArr = {1,2,3,4,5,6,7,8};
    System.out.println(testArr.length);
    }
}
// Result: 8

答案 3 :(得分:-1)

我设法解决了这个问题。

我希望图像的大小,我做了一个小功能,解决了我的问题。

 public static int length(BufferedImage bi)
{
    int x;
    x=bi.getHeight()*bi.getWidth();
    return x;
}