entender la estructura [x:y] en matlab
Frecuentes
Visto 57 veces
0
No estoy seguro de haber entendido correctamente el siguiente código:
i1=[0:M-1];
c_ind(i1+1)=i1+1;
i1=[0:M-1];
d_ind(i1+1)=i1+1;
¿Tengo razón al suponer que este fragmento de código produce dos vectores? c_ind y d_ind que contienen los números 1, 2, 3, ..., M ?
Muchas gracias por su apreciada ayuda; no estar seguro de esto dificulta el progreso;)
Mejores
- astrifa
1 Respuestas
0
Salida de Octave para este código a continuación. Sí, produce dos vectores, c_ind
y d_ind
, ambos contando desde 1
a M
.
No tengo idea de por qué esto fue escrito de esta manera.
>> M = 4
M = 4
>> i1=[0:M-1]
c_ind(i1+1)=i1+1
i1=[0:M-1]
d_ind(i1+1)=i1+1
i1 =
0 1 2 3
>> c_ind =
1 2 3 4
>> i1 =
0 1 2 3
>> d_ind =
1 2 3 4
La razón por la que esto realmente funciona es porque la sintaxis array([indices]) = [values]
mapea la lista de values
en los lugares especificados por indices
.
>> myvec2([1,4,7]) = [10,20,30]
myvec2 =
10 0 0 20 0 0 30
>> myvec(5:7) = [10,20,30]
myvec =
0 0 0 0 10 20 30
contestado el 03 de mayo de 12 a las 09:05
Y también Matlab comienza a indexar desde 1 a diferencia de muchos idiomas, por lo tanto, si intenta c_ind (i1) debería recibir un error ya que intentará c_ind (0) que no está permitido en Matlab. - Dan
No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas matlab vector or haz tu propia pregunta.
¿Hay algo que le impida iniciar MATLAB (u Octave, el equivalente gratuito) y simplemente las pruebas ¿esto? - Li-aung Yip
No tengo MATLAB instalado aquí y pensé que era realmente fácil para alguien que conoce MATLAB... pero tal vez debería obtener Octave, ¡gracias por la pista! - astriffe