Matlab - AYUDA, Error "Index exceeds the number of array elements (1)".

 
Vista:
sin imagen de perfil
Val: 31
Ha aumentado su posición en 2 puestos en Matlab (en relación al último mes)
Gráfica de Matlab

AYUDA, Error "Index exceeds the number of array elements (1)".

Publicado por Simón (18 intervenciones) el 23/01/2020 05:21:26
Hola a todos,
tengo una matriz llamada ffsila_a de dimensiones 2x66 y un vector CAA=[727.7 , 1366]

Tengo en una función, el siguiente código:
1
2
3
4
5
6
7
8
for i=1:66
 
 D_CAA=( abs(ffsila_a(2,i)-CAA(2))  )  +    (  abs(ffsila_a(1,i)-CAA(1))   );
 
 
Dsila(i,:)=[D_CAA];
 
end

Pero al ejecutar la función en el editor, me sale el siguiente error "Index exceeds the number of array elements (1)." en la linea "D_CAA=( abs(ffsila_a(2,i)-CAA(2)) ) + ( abs(ffsila_a(1,i)-CAA(1)) );"

Lo raro es que si ejecuto ese mismo código en el Command Window lo ejecuta con total normalidad.

Alguien sabe qué está pasando?
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil
Val: 918
Bronce
Ha mantenido su posición en Matlab (en relación al último mes)
Gráfica de Matlab

AYUDA, Error "Index exceeds the number of array elements (1)".

Publicado por Daniel (354 intervenciones) el 23/01/2020 10:03:05
Hola,

Tendrás mal iniciada algunas de las matrices, porque el código esta bien.

Lo mejor es que lo compruebes con el depurador.

Saludos,
Daniel Rodríguez.
Analytics Lane
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de JOSE JEREMIAS CABALLERO
Val: 6.975
Oro
Ha mantenido su posición en Matlab (en relación al último mes)
Gráfica de Matlab

AYUDA, Error "Index exceeds the number of array elements (1)".

Publicado por JOSE JEREMIAS CABALLERO (5917 intervenciones) el 23/01/2020 13:01:33
1
2
3
4
5
6
7
8
clear
 ffsila_a=rand(2,66);
 CAA=[727.7 , 1366]
 for i=1:66
  D_CAA=( abs(ffsila_a(2,i)-CAA(2))  )  +    (  abs(ffsila_a(1,i)-CAA(1))   );
 Dsila(i,:)=[D_CAA];
 end
Dsila

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
Dsila =
 
   1.0e+03 *
 
    2.0930
    2.0933
    2.0925
    2.0925
    2.0920
    2.0928
    2.0930
    2.0925
    2.0933
    2.0933
    2.0927
    2.0924
    2.0922
    2.0921
    2.0928
    2.0927
    2.0929
    2.0932
    2.0922
    2.0926
    2.0930
    2.0927
    2.0928
    2.0928
    2.0925
    2.0926
    2.0932
    2.0928
    2.0931
    2.0928
    2.0928
    2.0925
    2.0927
    2.0932
    2.0930
    2.0925
    2.0926
    2.0924
    2.0921
    2.0928
    2.0933
    2.0926
    2.0926
    2.0926
    2.0926
    2.0920
    2.0928
    2.0926
    2.0926
    2.0933
    2.0921
    2.0926
    2.0925
    2.0924
    2.0922
    2.0934
    2.0935
    2.0928
    2.0926
    2.0923
    2.0918
    2.0934
    2.0929
    2.0926
    2.0924
    2.0926

Saludos
JOSE JEREMIAS CABALLERO
Asesor de Proyectos con Matlab
Servicios de programación matlab
Servicio de Asesoría Online en Matlab


http://matlabcaballero.blogspot.com
https://www.facebook.com/matlabcaballero
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 31
Ha aumentado su posición en 2 puestos en Matlab (en relación al último mes)
Gráfica de Matlab

AYUDA, Error "Index exceeds the number of array elements (1)".

Publicado por Simón (18 intervenciones) el 23/01/2020 21:04:06
Es que eso es lo que no entiendo, todo está bien. La función tiene como entrada la matriz de 2x66, la cual al revisarla está completamente bien. Y el vector CAA está también bien.

No entiendo qué pasa.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de JOSE JEREMIAS CABALLERO
Val: 6.975
Oro
Ha mantenido su posición en Matlab (en relación al último mes)
Gráfica de Matlab

AYUDA, Error "Index exceeds the number of array elements (1)".

Publicado por JOSE JEREMIAS CABALLERO (5917 intervenciones) el 23/01/2020 21:07:38
Lo que he copiado al foro, puede copiar a un editor de matlab y ejecute con la función run, guardar con el nombre del archivo prueba1234.m. Luego comparta lo que muestra en la ventana de comand windows.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 31
Ha aumentado su posición en 2 puestos en Matlab (en relación al último mes)
Gráfica de Matlab

AYUDA, Error "Index exceeds the number of array elements (1)".

Publicado por Simón (18 intervenciones) el 23/01/2020 21:40:46
Pero miren que raro, estos son los datos de la variable CAA, y lo que hace la función es cargar esa variable con load('CAA.mat') y hace todos los procedimientos que tenga que hacer. Pero como les dije, no funciona

Captura

Pero si en cambio, dentro de la función, al principio inicializo la variable hola=[727.7 , 1366] (en vez de cargarla) y reemplazo todos los "CAA" por "hola", funciona perfecto.

Es decir, la variable CAA y la variable hola son lo mismo, pero con "CAA" me sale el error, y con "hola" no.


Por otro lado, al ejecutar tu código, ejecuta perfectamente, y esto es lo que muestra el command window:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
Dsila =
 
   1.0e+03 *
 
    2.0933
    2.0922
    2.0926
    2.0918
    2.0924
    2.0931
    2.0920
    2.0921
    2.0928
    2.0921
    2.0922
    2.0927
    2.0928
    2.0934
    2.0936
    2.0922
    2.0924
    2.0932
    2.0926
    2.0927
    2.0928
    2.0923
    2.0927
    2.0924
    2.0934
    2.0922
    2.0928
    2.0927
    2.0929
    2.0921
    2.0922
    2.0934
    2.0926
    2.0926
    2.0925
    2.0932
    2.0928
    2.0929
    2.0923
    2.0922
    2.0927
    2.0926
    2.0931
    2.0931
    2.0920
    2.0930
    2.0932
    2.0932
    2.0926
    2.0930
    2.0928
    2.0924
    2.0925
    2.0934
    2.0926
    2.0923
    2.0926
    2.0932
    2.0927
    2.0921
    2.0927
    2.0930
    2.0925
    2.0926
    2.0933
    2.0927
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de JOSE JEREMIAS CABALLERO
Val: 6.975
Oro
Ha mantenido su posición en Matlab (en relación al último mes)
Gráfica de Matlab

AYUDA, Error "Index exceeds the number of array elements (1)".

Publicado por JOSE JEREMIAS CABALLERO (5917 intervenciones) el 23/01/2020 22:06:23
Estimado podria subir el codigo y todo los datos necesarios para la ejecución.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de JOSE JEREMIAS CABALLERO
Val: 6.975
Oro
Ha mantenido su posición en Matlab (en relación al último mes)
Gráfica de Matlab

AYUDA, Error "Index exceeds the number of array elements (1)".

Publicado por JOSE JEREMIAS CABALLERO (5917 intervenciones) el 24/01/2020 01:36:50
1
2
3
4
5
6
7
8
9
10
11
clear
CAA=[727.7 , 1366];
save('CAA.mat','CAA')
clear
load('CAA.mat');
 ffsila_a=rand(2,66);
 for i=1:66
  D_CAA=( abs(ffsila_a(2,i)-CAA(2))  )  +    (  abs(ffsila_a(1,i)-CAA(1))   );
 Dsila(i,:)=[D_CAA];
 end
Dsila

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
>> archivos_mat
 
Dsila =
 
   1.0e+03 *
 
    2.0930
    2.0931
    2.0922
    2.0936
    2.0924
    2.0925
    2.0928
    2.0921
    2.0927
    2.0926
    2.0927
    2.0931
    2.0919
    2.0927
    2.0925
    2.0925
    2.0925
    2.0925
    2.0930
    2.0926
    2.0925
    2.0927
    2.0924
    2.0930
    2.0922
    2.0919
    2.0926
    2.0923
    2.0931
    2.0924
    2.0919
    2.0922
    2.0926
    2.0933
    2.0926
    2.0923
    2.0927
    2.0930
    2.0928
    2.0930
    2.0927
    2.0933
    2.0933
    2.0925
    2.0928
    2.0926
    2.0924
    2.0927
    2.0920
    2.0924
    2.0924
    2.0928
    2.0921
    2.0926
    2.0922
    2.0928
    2.0934
    2.0931
    2.0928
    2.0931
    2.0935
    2.0931
    2.0930
    2.0926
    2.0928
    2.0936
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 918
Bronce
Ha mantenido su posición en Matlab (en relación al último mes)
Gráfica de Matlab

AYUDA, Error "Index exceeds the number of array elements (1)".

Publicado por Daniel (354 intervenciones) el 24/01/2020 09:38:36
Es un problema de integración que no vamos a poder reproducir ni solucionar en el foro (salvo que nos envíes el espacio de trabajo en un archivo mat). El problema no esta en el código esta en los datos que le llegan. Usa el depurador para comprobar lo que hace en cada momento.

Otra opción es imprimir el valor de i cada una de las variables por pantalla antes del calculo, eso puede decir lo que es.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de JOSE JEREMIAS CABALLERO
Val: 6.975
Oro
Ha mantenido su posición en Matlab (en relación al último mes)
Gráfica de Matlab

AYUDA, Error "Index exceeds the number of array elements (1)".

Publicado por JOSE JEREMIAS CABALLERO (5917 intervenciones) el 24/01/2020 12:26:36
Estimado, podría subir la forma de cómo está ejecutando su código, lo que muestra la ventana de comandos, para use la funcion: whos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar