我正在尝试在 java 中使用numel(Matlab 中可用的函数)。他们在java中是否有这个函数的实现?
问问题
345 次
4 回答
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;
}
于 2013-04-18T18:14:27.857 回答
-1
我设法解决了这个问题。
我多么希望图像的大小,我做了一个小函数来解决我的问题。
public static int length(BufferedImage bi)
{
int x;
x=bi.getHeight()*bi.getWidth();
return x;
}
于 2013-04-18T18:46:44.110 回答
-1
matlab的numel函数
n = numel(A) 返回数组 A 中的元素数 n。
你可以让你喜欢
int arraycount(int a[])
{
int counter;
for(int i=0;i<a.length;i++)
{
counter++;
}
return counter;
}
于 2013-04-18T17:11:00.863 回答
-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
于 2013-04-18T17:12:58.537 回答