Matlab - CALCULO SUBMATRIZ CON RANGOS DE BUCLE

 
Vista:
Imágen de perfil de Raquel
Val: 1
Ha aumentado su posición en 43 puestos en Matlab (en relación al último mes)
Gráfica de Matlab

CALCULO SUBMATRIZ CON RANGOS DE BUCLE

Publicado por Raquel (1 intervención) el 29/03/2019 17:51:24
La duda está en que estoy haciendo un algoritmo que quiero que me recorra una matriz por filas y columnas en función de una fórmula:
tengo que n es la dimensión de la matriz gran
y j es el valor que va variando de 1 hasta n que es la dimensión total.
Entonces, tengo:
A_j = [(1 + j): ((n-1) / 2 + j)]; (es el rango de le filas que debe escoger de la matriz gran nxn)
B_j = [((n + 1) / 2 + j) :( n-1 + j)]; (es el rango de las columnas que tiene que escoger de la matriz gran nxn)
Lo que pasa que cuando A_j o B_j llega al final de la dimensión de la matriz quiero que vuelva a empezar las filas o clumnes el inicio como un bucle, por ejemplo la imagen adjuntada.
y por este motivo hago el condicional que si supera alguno de los rango el valor máximo de la matriz n que en este caso es 7 que le reste n al rango tanto en filas como en columnas:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
if (1 + j)> n && ((n-1) / 2 + j) <= n
    A_j = [(1 + j) -n: ((n-1) / 2 + j)];
elseif ((n-1) / 2 + j)> n && (1 + j) <= n
    A_j = [(1 + j): ((n-1) / 2 + j) -n];
elseif ((n-1) / 2 + j)> n && (1 + j)> n
    A_j = [(1 + j) -n: ((n-1) / 2 + j) -n];
end
B_j = [((n + 1) / 2 + j) :( n-1 + j)];
if ((n + 1) / 2 + j)> n && (n-1 + j) <= n
    B_j = [((n + 1) / 2 + j) -n: (n-1 + j)];
elseif (n-1 + j)> n && ((n + 1) / 2 + j) <= n
    B_j = [((n + 1) / 2 + j) :( n-1 + j) -n];
elseif (n-1 + j)> n && ((n + 1) / 2 + j)> n
    B_j = [((n + 1) / 2 + j) -n: (n-1 + j) -n];
end

Lo que pasa que el rango de este ejemplo como muchos otros, en el caso de las columnas que es de la columna 5 a la 1: nose como hacer que me coja de 5 a 7 y luego 1, porque no me lee como un bucle, sabes? Y no se como hacerlo.
GRACIAS POR LA AYUDA!!
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