我想显示矩阵的小数。首先,我有一个矩阵3x3。
1 2 3 4 5 6 7 8 9
我想显示M11 (删除第1行和第1行),所以它就像
1 3 7 9
但是用我的程序我得到了这样的东西
[经]1 2 4 0
这是我的代码:
public static double [][] Minor (double [][] M, int bar, int kol, int maxidx){
double [][] minor = new double [2][2];
int mini=0, minj=0;
for (int i=0; i<2;i++){
for (int j=0;j<2;j++){
if (i!=bar | j!=kol){
minor[mini][minj]=M[i][j];
minj++;
if (minj==(maxidx-1)){
mini++;
minj=0;
}
}
}
}
return minor;
}为了显示小调,我使用了以下代码:
for (int i=0;i<2;i++){
for (int j=0;j<2;j++){
System.out.print(Minor(M,1,1,3)[i][j]+" ");
}
System.out.println();
}我的密码怎么了?
发布于 2012-12-17 09:46:27
if (i!=bar | j!=kol)这是按位运算符,而不是逻辑运算符,但是,整个逻辑是错误的
执行此操作
for (int i=0; i<=2;i++){
if(i!=bar)
{
for (int j=0;j<=2;j++){
if (j!=kol){
minor[mini][minj]=M[i][j];
minj++;
}
}
mini++;
}
}
}发布于 2012-12-17 09:44:09
我认为这个if (i!=bar | j!=kol){是个问题。您应该使用{##**$}}(逻辑或)
发布于 2012-12-17 10:01:32
您使用的是按位的OR,应该在其中使用逻辑AND。
if (i!=bar && j!=kol){
^^现在,您只是在bar和kol的交集处跳过元素。相反,您希望跳过整个bar行和整个kol列。
https://stackoverflow.com/questions/13911614
复制相似问题