SoloCodigo

Programación General => C/C++ => Mensaje iniciado por: Melissavir en Viernes 16 de Octubre de 2009, 19:19

Título: Trabajar con matriz multidimensional
Publicado por: Melissavir en Viernes 16 de Octubre de 2009, 19:19
Hola gracias por responderme a la pregunta anterior que hice,pero bueno depsues que les escribi probe otra cosita y ya funciono.

Ahora lo que tengo un problemita.Cuano yo quiero trabajar con una sola dimension de la matriz.

por ejemplo quiero copiar unos datos de la 3ra dimension de la matriz para la segunda .Como puedo hacer porke de la forma ke pense me da error.


Agradeceria que me respondieran,que es que estoy trabajando en mi tesis de diploma ,y me hace mucha falta.


Graciasss.
Título: Re: Trabajar con matriz multidimensional
Publicado por: m0skit0 en Sábado 17 de Octubre de 2009, 01:48
Estaría bien que pusieras la forma en que la haces ahora, así podríamos orientarte.
Título: Re: Trabajar con matriz multidimensional
Publicado por: Melissavir en Martes 20 de Octubre de 2009, 14:19
Cita de: "m0skit0"
Estaría bien que pusieras la forma en que la haces ahora, así podríamos orientarte.


double reshape(double***matrixX,int m,int n,int p)
{
   int i,j,k;
   
   
for(i=0;i<27;i++)
{
   //matrixX[][]=matrixX[][];
   for(j=0;j<551;j++)
{
   for(k=0;k<24;k++)
   {
//      matrixX= memcpy_s(matrixX[][j][],551,matrixX[][][k],24);
      
   }
     }
}
return 0;
}

Lo que quiero hacer aqui,es que en la 1ra dimension de la matriz que voya redimensionar se mantengan los mismos valores de i,y en la segunda dimension ahora van a estar los de j y los de K,por eso que utilizo el  memcpy_s,lo ke supongo ke ahora debo redefinir esa dimension.me pudieras orientar sobre esta funcion ke estoy haciendo__
Lo ke me da error es a la hora de acceder a esas dimnsiones,ke no me reconoce esa forma de hacerlo.
Título: Re: Trabajar con matriz multidimensional
Publicado por: m0skit0 en Miércoles 21 de Octubre de 2009, 10:30
Usa las etiquetas de código, así nos entendemos mejor:

Código: C
  1. double reshape(double***matrixX,int m,int n,int p)
  2. {
  3.     int i,j,k;
  4.  
  5.     for(i=0;i<27;i++)
  6.     {
  7.         //matrixX[i][][]=matrixX[i][][];
  8.         for(j=0;j<551;j++)
  9.         {
  10.             for(k=0;k<24;k++)
  11.             {
  12.                 // matrixX= memcpy_s(matrixX[][j][],551,matrixX[][][k],24);
  13.             }
  14.         }
  15.     }
  16.     return 0;
  17. }
  18.  
Primero, no puedes redimensionar memoria que no hayas reservado en tiempo de ejecución (dinámicamente). Si matrixX no es una estructura estática (matrixX[27][551][24] sería por ejemplo una estructura estática), entonces puedes redimensionar con realloc().

En todo caso, memcpy() se usa para copiar regiones de memoria, no para redimensionar. Y esta expresión: matrixX[][j][] es evidentemente inválida porque no indicas los índices de la primera y tercera dimensión; algo parecido te ocurre en la segunda expresión que usas.
Título: Re: Trabajar con matriz multidimensional
Publicado por: Melissavir en Martes 10 de Noviembre de 2009, 20:53
Hola

Sigo trabada con las matrices.

Pudieran decirme como acceder a la matriz como tal,para poder recorrer solo dos dimensiones de ella__

yo la declaro asi: double ***matrix.

pero para despues acceder a los elmentos de ella:

***matrix,eso no me hace nada.

Porfis ayudenme.