• Jueves 16 de Mayo de 2024, 23:31

Autor Tema:  Recorrer Matrices  (Leído 9633 veces)

javi84

  • Nuevo Miembro
  • *
  • Mensajes: 2
    • Ver Perfil
Recorrer Matrices
« en: Miércoles 30 de Mayo de 2007, 17:52 »
0
Al recorrer  matrices  tengo que hacer algo mal porque me da error, os pongo mi ejemplo:


EN51=[-67 -67.5 -68 -68.5    -69 -69.5 -69.75 -70 -70.5   -71 -71.5   -72];

EN41=[-54   -54.875   -55.2 -55.75   -56.625   -57.5 -57.875          -58.375 -58.8   -59.25   -60.125   -61];

A13=[0   0.7   1.4   2.1   2.8   3.5   4.2   4.9   5.6   6.3   7]

A23=[5   6   7   8   9   10   11   12   13   14   15]


 bueno A13 y A14 tienen 11 elementos, EN51 y EN41 tiene 12 elementos


 for i=1:11
        if ((A13(i)<=elevacionA)&&(A23(i)>elevacionA))
            for j=1:12
             if ((EN51(j)<=azimutA)&&(EN41(j)>azimutA))
                 CA9=CA9+1
             else
            end
            end
        else
        end
    end

pues solo me recorre el primer for dos veces y despues me da este error:

-->Index exceeds matrix dimensions.


Espero q me podeis ayudar.
Gracias

fa61an

  • Miembro MUY activo
  • ***
  • Mensajes: 100
    • Ver Perfil
Re: Recorrer Matrices
« Respuesta #1 en: Miércoles 30 de Mayo de 2007, 19:21 »
0
Si esta extraño probe tu código y a mi no me bota ningún error,  lo unico que veo es que los else no son necesarios o menos que tengas pensado hacer algo ahi, pero de todas maneras con los else funciona perfecto y nunca me salio el error que mencionas


Código: Text
  1. clear all
  2. clc
  3. EN51=[-67 -67.5 -68 -68.5 -69 -69.5 -69.75 -70 -70.5 -71 -71.5 -72];
  4. EN41=[-54 -54.875 -55.2 -55.75 -56.625 -57.5 -57.875 -58.375 -58.8 -59.25 -60.125 -61];
  5. A13=[0 0.7 1.4 2.1 2.8 3.5 4.2 4.9 5.6 6.3 7];
  6. A23=[5 6 7 8 9 10 11 12 13 14 15];
  7. elevacionA=5;
  8. azimutA=-65;
  9. CA9=1;
  10. for i=1:11
  11.     z=i         % la use para minitorea cuantas veces se ejecuta el for
  12.     if ((A13(i)&#60;=elevacionA)&&(A23(i)&#62;elevacionA))
  13.         disp('Se cumplio el primer If=')
  14.         for j=1:12
  15.             w=j  % la use para minitorea cuantas veces se ejecuta el for
  16.             if ((EN51(j)&#60;=azimutA)&&(EN41(j)&#62;azimutA))
  17.             disp('Se cumplio el segundo If=')
  18.             CA9=CA9+1;
  19.             end
  20.         end
  21.     end
  22. end
  23.  

la variables z y w las use para mirar cada ejecucion como ocurrida pero si te fijas a la hora del té no son necesarias por que el Workspace te dice los valores de i y j, bueno el codigo esta revisa tu Matlab.....

javi84

  • Nuevo Miembro
  • *
  • Mensajes: 2
    • Ver Perfil
Re: Recorrer Matrices
« Respuesta #2 en: Miércoles 30 de Mayo de 2007, 19:43 »
0
Gracias. Tengo instalado el matlab 6.5 y hasta ahora me ha ido siempre bien, sabes que puede pasar? Lo instalo de nuevo? Q puedo hacer?

allisap

  • Miembro MUY activo
  • ***
  • Mensajes: 259
  • Nacionalidad: mx
    • Ver Perfil
Re: Recorrer Matrices
« Respuesta #3 en: Miércoles 30 de Mayo de 2007, 23:01 »
0
mira... yo tengo el 7 y probe tu codigo y no da ningun mensaje de error

tal vez el problema esta en los valores iniciales de tus variables elevacionA y azimutA