检查给定矩阵是否具有有效维度-JAVA
我想检查给定的矩阵是否具有有效的维度。 下面的矩阵具有无效的Dim,因为它不满足矩阵属性检查给定矩阵是否具有有效维度-JAVA,java,arrays,matrix,2d,Java,Arrays,Matrix,2d,我想检查给定的矩阵是否具有有效的维度。 下面的矩阵具有无效的Dim,因为它不满足矩阵属性 Matrix x = new Matrix(new double[][]{ { 1.0, 2.0, 3.0}, { 4.0, 5.0 } }) 我尝试了几种方法,最新的是: for (int i = 0; i < row; i++) { for (int j = 0; j <
Matrix x = new Matrix(new double[][]{
{ 1.0, 2.0, 3.0},
{ 4.0, 5.0 }
})
我尝试了几种方法,最新的是:
for (int i = 0; i < row; i++) {
for (int j = 0; j < col; j++) {
if (array[i][j] = null) {
throw new InvalidDimensionsException("Invalid Dim");
}
}
}
for(int i=0;i|
只是它不是空的,它只是没有元素!
不幸的是,一切都不起作用,我也没办法了
我很高兴听到你的建议
提前感谢如果您知道矩阵必须具有的列数,您可以检查矩阵中每个一维数组的大小
double[][] mat = ...; //get the underlying array from the matrix
for (double[] arr : mat) if (arr.length != numCols) throw new InvalidDimensionsException(...);
否则,您可以获取第一行的大小,并检查所有行是否具有相同的长度
//If it's empty, there's no point checking further
if (mat.length != 0) {
//All the rows should have this same length
int numCols = mat[0].length;
for (int i = 1; i < mat.length; i ++)
if (mat[i].length != numCols) throw new InvalidDimensionsException(...);
}
//如果它是空的,则没有必要进一步检查
如果(材料长度!=0){
//所有行的长度都应该相同
int numCols=mat[0]。长度;
对于(int i=1;i
如果知道矩阵必须包含的列数,可以检查矩阵中每个一维数组的大小
double[][] mat = ...; //get the underlying array from the matrix
for (double[] arr : mat) if (arr.length != numCols) throw new InvalidDimensionsException(...);
否则,您可以获取第一行的大小,并检查所有行是否具有相同的长度
//If it's empty, there's no point checking further
if (mat.length != 0) {
//All the rows should have this same length
int numCols = mat[0].length;
for (int i = 1; i < mat.length; i ++)
if (mat[i].length != numCols) throw new InvalidDimensionsException(...);
}
//如果它是空的,则没有必要进一步检查
如果(材料长度!=0){
//所有行的长度都应该相同
int numCols=mat[0]。长度;
对于(int i=1;i
双[][]的单元格不能为空,因此问题中的代码没有意义,特别是因为它没有编译(=
应该是=
)
要验证2D数组是否为矩形,即有效矩阵,请执行以下操作:
double[][]矩阵={
{ 1.0, 2.0, 3.0},
{ 4.0, 5.0 }
};
int height=matrix.length;
如果(高度==0)
抛出新的InvalidDimensionsException(“无效Dim”);
整数宽度=矩阵[0]。长度;
如果(宽度==0)
抛出新的InvalidDimensionsException(“无效Dim”);
对于(int y=1;y
代码将抛出
NullPointerException
如果任何数组都是null
则双[][]
的单元格不能为null,因此问题中的代码没有意义,特别是因为它没有编译(=
应该是=
)
要验证2D数组是否为矩形,即有效矩阵,请执行以下操作:
double[][]矩阵={
{ 1.0, 2.0, 3.0},
{ 4.0, 5.0 }
};
int height=matrix.length;
如果(高度==0)
抛出新的InvalidDimensionsException(“无效Dim”);
整数宽度=矩阵[0]。长度;
如果(宽度==0)
抛出新的InvalidDimensionsException(“无效Dim”);
对于(int y=1;y
代码将抛出
NullPointerException
如果任何数组都是null
无效部分是:{1.0,2.0,3.0},{4.0,5.0,x},其中x应该有一个元素,否则它的无效矩阵Dim所有行和列必须包含一个元素无效部分是:{1.0,2.0,3.0},{4.0,5.0,x}其中x应该有一个元素,否则它是无效的矩阵Dim所有行和列必须包含一个元素此代码有效,但空矩阵有效。可以有0x0、10x0、0x5的矩阵,etc@user这是OP决定A是否被认为是有效的,并相应地调整此处显示的代码防止异常,但OP可以根据需要选择不同的操作。好吧。我假设OP将使用数学定义,但我猜它们的特定用例可能会有所不同。此代码有效,但空矩阵有效。可以使用0x0、10x0、0x5的矩阵,etc@user这是由OP决定是否将某个对象视为valid,并相应地调整此处显示的代码。必须测试零的高度以防止异常,但OP可以根据需要选择不同的操作。好吧。我假设OP将使用数学定义,但我猜他们的具体用例可能不同