5
Supongamos que tengo las entradas data = [1 2 3 4 5 6 7 8 9 10]
y num = 4
. Quiero usar estos para generar el siguiente:¿Cómo puedo generar la siguiente matriz y vector a partir de los datos de entrada dados en MATLAB?
i = [1 2 3 4 5 6; 2 3 4 5 6 7; 3 4 5 6 7 8; 4 5 6 7 8 9]
o = [5 6 7 8 9 10]
que se basa en la siguiente lógica:
length of data = 10
num = 4
10 - 4 = 6
i = [first 6; second 6;... num times]
o = [last 6]
¿Cuál es la mejor manera de automatizar esto en MATLAB?
@Jacob: Es curioso, he aprendido acerca de las funciones de fomento de la matriz de este tipo hace relativamente poco tiempo (en realidad, de una respuesta aquí en SO: http: // stackoverflow.com/questions/1000535/how-can-i-create-a-triangular-matrix-based-on-a-vector-in-matlab/1000889#1000889), y ahora que los conozco, sigo encontrando * taaaan * muchos lugares para usarlos. ;) – gnovice
Agradable. Hubiera utilizado algo basado en el desplazamiento del código, pero esto es mucho más elegante – Kena
solo que mis datos no serán siempre '1: 10', así que he usado' o = data (:, (num + 1: end)) ; '. Estaba pensando en utilizar múltiples bucles for para lograr lo mismo. 'Hankel' es mucho más elegante. – Lazer