• Jueves 14 de Noviembre de 2024, 04:01

Autor Tema:  Trabajar con matriz multidimensional  (Leído 1203 veces)

Melissavir

  • Nuevo Miembro
  • *
  • Mensajes: 4
    • Ver Perfil
Trabajar con matriz multidimensional
« en: Viernes 16 de Octubre de 2009, 19:19 »
0
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.

m0skit0

  • Miembro de PLATA
  • *****
  • Mensajes: 2337
  • Nacionalidad: ma
    • Ver Perfil
    • http://fr33kk0mpu73r.blogspot.com/
Re: Trabajar con matriz multidimensional
« Respuesta #1 en: Sábado 17 de Octubre de 2009, 01:48 »
0
Estaría bien que pusieras la forma en que la haces ahora, así podríamos orientarte.

Melissavir

  • Nuevo Miembro
  • *
  • Mensajes: 4
    • Ver Perfil
Re: Trabajar con matriz multidimensional
« Respuesta #2 en: Martes 20 de Octubre de 2009, 14:19 »
0
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.

m0skit0

  • Miembro de PLATA
  • *****
  • Mensajes: 2337
  • Nacionalidad: ma
    • Ver Perfil
    • http://fr33kk0mpu73r.blogspot.com/
Re: Trabajar con matriz multidimensional
« Respuesta #3 en: Miércoles 21 de Octubre de 2009, 10:30 »
0
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.

Melissavir

  • Nuevo Miembro
  • *
  • Mensajes: 4
    • Ver Perfil
Re: Trabajar con matriz multidimensional
« Respuesta #4 en: Martes 10 de Noviembre de 2009, 20:53 »
0
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.