Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Olá pessoal,
Estou tentando realizar a soma de todos os elementos de apenas uma
dimensão de uma matriz, criei um metodo para realizar tal soma, no
entanto não sei oq esta acontecendo, pelo que percebi da forma que fiz
parece que nem esta entrando dentro do metodo. Veja meu codigo:
import java.io.DataInputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
public class ReadFile {
/****************************************************
* Metodo criado para receber as duas Matrizes 4D
****************************************************/
public static double[][][][] criaMatriz4D(int dim1, int dim2,
int
dim3, int dim4, DataInputStream input) throws IOException{
double[][][][] matriz = new double[dim1][dim2][dim3][dim4];
for (int l = 0; l < dim4; l++) {
for (int k = 0; k < dim3; k++) {
for (int j = 0; j < dim2; j++) {
for (int i = 0; i < dim1; i++) {
matriz[i][j][k][l] =
input.readDouble();
}
}
}
}
return matriz;
}
/****************************************************
* Metodo criado para receber as duas Matrizes 3D
****************************************************/
public static float[][][] criaMatriz3D(int dim2, int dim3, int float[][][] matriz = new float[dim2][dim3][dim4];
for (int k = 0; k < dim4; k++) {
for (int j = 0; j < dim3; j++) {
for (int i = 0; i < dim2; i++) {
matriz[i][j][k] =
input.readFloat();
}
}
}
return matriz;
}
/******************************************************
* Metodo para realizar somatorio das matrizes de Imag
******************************************************/
public static double soma(double[][][][] mat_modImag, int System.out.println("Aqui =" );
int somatorio = 0;
for(int l = 0; l < dim4; l++){
somatorio += mat_modImag[dim1][dim2][dim3][l];
System.out.println("Aqui =");
}
System.out.println("a soma eh =" +somatorio);
return somatorio;
}
public static void main(String args[]) throws IOException {
// Realizando a leitura do arquivo binário
DataInputStream input = new DataInputStream(new
FileInputStream(new
File("C:/Documents and Settings/Web/data.dtb")));
// Lendo as dimensões gravadas no binário
int dim1 = 4; // dimensão fixa
int dim2 = input.readInt(); // dimensão lida do// Exibo os valores de cada dimensão, só para
verificar se esta
"pegando" valor correto
System.out.println("Dimensão1= " +dim1);
System.out.println("Dimensão2= " +dim2);
System.out.println("Dimensão3= " +dim3);
System.out.println("Dimensão4= " +dim4);
// Guardo os valores das respectivas matrizes
double [][][][] mat_modImag = criaMatriz4D(4, dim2,input);
double [][][][] mat_conjImag = criaMatriz4D(4, dim2,input);
float [][][] mat_modScatter = criaMatriz3D(dim2, dim3,
dim4, input);
float [][][] mat_conjScatter = criaMatriz3D(dim2,input);
// Fechando a leitura
input.close();
// Imprime as posições das matrizes
System.out.println(mat_modImag[0][0][16][16]);
System.out.println(mat_conjImag[0][0][19][16]);
System.out.println(mat_modScatter[1][2][1]);
System.out.println(mat_conjScatter[14][16][3]);
}
// Metodo para imprimir as matrizes
private static void imprimeMatriz(double[][][][] matriz) {
System.out.println("----");
for (int i = 0; i < matriz.length; i++) {
for (int j = 0; j < matriz[i].length; j++) {
for (int k = 0; k < matriz[i] System.out.print(" ");
for (int l = 0; l < matriz[i]System.out.print(matriz[i][j][k][l] + " ");
}
System.out.println();
}
System.out.println("--");
}
System.out.println("----");
}
}
}
Inseri uns print's dentro do metodo, porém nenhum esta sendo exibido,
debuguei o código, inseri um breakpoint dentro do metodo, porém a
única coisa que exibe é oq segue abaixo:
<terminated>ReadFile [Java Application]
<disconnected>ReadFile at localhost:2138
<terminated, exit value: 0>C:\Arquivos de programas\Java\jre6\bin
\javaw.exe (09/12/2011 13:50:44)
Pelo que entendi tem relação com a soma, não realizou a soma. Estou
certa?
No entanto não estou entendendo pq não esta realizando o calculo.
OBS: Minha matriz é do seguinte tipo: DOUBLE = Array[4, 16, 32,
32], ou seja, possui 4Dimensões, preciso somar os elementos da
dimensão4 por exemplo.
Obrigada,Carregando comentários...