Anuncio

Colapsar
No hay ningún anuncio todavía.

¿Existe esto?

Colapsar
X
 
  • Filtro
  • Hora
  • Mostrar
Borrar todo
nuevos mensajes

  • Octave ¿Existe esto?

    Hola, busco una especie de "tensor" o mejor dicho de "vector de matrices" y "vector de vectores". Para definir un tensor de cierto orden hay que escribir w(3,5,4,5)=1 por ejemplo, y así con los demás índices, y para designar matrices en un tensor, basta escribir w(:,:,2)=A, donde A es una matriz. Pero como todo tensor tiene que cumplir que las dimensiones de w(:,:,1) sean las mismas que w(:,:,2) y w(:,:,3), etc.
    Lo que busco es algo parecido, que me permita recorrer con índices como en las matrices y vectores, pero que cierta matriz w(:,:,1) o cierto vector u(:,1) no tengan que tener las mismas dimensiones que w(:,:,2) o u(:,2).
    ¿Alguien sabe si se puede hacer esto?
    Porque con estructuras, por ejemplo, no me permitirían recorrer por índices las diferentes matrices o vectores...

    Un saludo, gracias.

    - - - Actualizado - - -

    Creo que me he equivocado y con estructuras es lo ideal. Puesto que puedo escribir cosas como: x(2).a=[1 1] y x(1).a=[1; 1], y entonces me aparecería x(1) scalar structure containing the fields a= 1 (abajo) 1, y x(2), a= 1 (en la misma línea) 1.
    Creo que con esto ya puedo programar lo que quería.
    Un saludo.
    [TEX=null] \vdash_T G \leftrightarrow Consis \; \ulcorner T \urcorner [/TEX]

  • #2
    Re: ¿Existe esto?

    Pues no conozco octave, pero con solo fijarme en wikipedia no puedes implementar listas enlazadas, colas , pilas, es una lástima. Claro, octave es un lenguaje de recontra alto nivel e interpretado desarrollado en C++.

    Pero seguramente puedas implementar las listas enlazadas definidas en STL. No podrás implementarlas vos con punteros pero si linkeando librerías.

    • El lenguaje está pensado para trabajar con matrices, y provee mucha funcionalidad para trabajar con éstas.
    Esa es la columna vertebral del lenguaje. ¿por qué dices que no puedes crear matrices de orden superior? o ¿un vector de matrices?

    Simplemente define una matriz de tal dimensión y luego defines un vector con tal dimensión, los componentes del vector serán las matrices.

    check this

    [FONT=Times New Roman]The [/FONT]cell[FONT=Times New Roman] function returns a cell array of a given size, containing empty matrices. This function is similar to the [/FONT]zeros[FONT=Times New Roman] function for creating new numerical arrays. The following example creates a 2-by-2 cell array containing empty matrices[/FONT][FONT=Times New Roman]c = cell (2,2)
    ⇒ c =

    {
    [1,1] = [](0x0)
    [2,1] = [](0x0)
    [1,2] = [](0x0)
    [2,2] = [](0x0) [/FONT]

    [FONT=Times New Roman] }[/FONT]
    and this

    [FONT=Times New Roman]Just like numerical arrays, cell arrays can be multi-dimensional. The [/FONT]cell[FONT=Times New Roman] function accepts any number of positive integers to describe the size of the returned cell array. It is also possible to set the size of the cell array through a vector of positive integers. In the following example two cell arrays of equal size are created, and the size of the first one is displayed[/FONT][FONT=Times New Roman]c1 = cell (3, 4, 5);
    c2 = cell ( [3, 4, 5] );
    size (c1)
    ⇒ ans = [/FONT]

    [FONT=Times New Roman] 3 4 5[/FONT]
    Por más bella o elegante que sea la teoría, si los resultados no la acompañan, está mal.

    Comentario


    • #3
      Re: ¿Existe esto?

      Vale entiendo, una cosa son los vectores, matrices, tensores, que el programa maneja, y que obligatoriamente tienen que tener siempre los mismos índices, la matriz w(:,:,1) tiene que tener las mismas dimensiones que w(:,:,2). Siendo esto lógico, porque por ejemplo matemáticamente no se puede escribir tal matriz:
      2 2
      2 3 4 7 9
      8 7 6
      1
      Y otra cosa son los arrays de programación { w g h}, en donde w g y h pueden tener las dimensiones que quieran, del tipo de dato que sea, siendo las estructuras casos particulares de los arrays en los que identificas cada elemento con un nombre.
      Gracias!!!
      [TEX=null] \vdash_T G \leftrightarrow Consis \; \ulcorner T \urcorner [/TEX]

      Comentario

      Contenido relacionado

      Colapsar

      Trabajando...
      X