Como dice el título, ¿alguien me puede dar una manito en interpretar un poco de código escrito en Matlab?
Verán tengo a modo de ejemplo cierto algoritmo para adaptar a Delphi y hay algo que no me cuadra o me cuesta entenderle. De todo el gran algoritmo lo que me cuesta entender es como juega el tema del operador : (que yo vulgarmente llamo iterador) cuando uno lo combina con el operador de traspuesta (') y en una multiplicación de matrices.
Tengo una matriz u de tamaño N x M, una matriz A de NxM previamente reservada. Y lo que sigue es aplicar una operación que me cuesta entenderle, porque todo lo anterior ya lo tengo muy bien armado.
El lio está en esto:
w=zeros(M,M); for (i=1:M) for (j=1:M) w(i,j)=u(:,j)'*A(:,j); end end
Justamente lo que me cuesta entenderle es la operación real que sucede en el cálculo de w(i,j). En teoría se que esto representa una operación punto a punto entre los elementos de u y A. Pero... el que se aplica una traspuesta me induce a pensar si lo que el u original es una matriz NxM ahora será MxN. De se así entonces si el iterador : está en la fila ¿al aplicar transpuesta será sobre la columna? ¿O es que itera sobre la fila de la matriz traspuesta?
¿Que tiene prioridad?
Si alguien le entiende esa partecita se lo agradecería. Porque cada vez que lo veo me mareo. Quizá sea una tontera pero tengo la cabeza ya quemada entre tantas cosas que he visto en el día.
EDITO:
Por si sirve de ayuda, se que la matriz resultante debe ser MxM. La parte teórica de mis apuntes dice justamente esto:
wk = ukT*A, for k = 1 to 1,..., M
El texto que acompaña a esto: "Esto describe un conjunto de multiplicaciones y sumatorias punto-a-punto. Los pesos w forman un vector OmegaT=[w1, w2, ..., wM]"
Inicialmente ya tenía código escrito en Delphi que en esta última parte no me cuadraba y tuve que recurir a material complementario que se da en Matlab. Y rompió mis moldes, y complicó el escenario final en como se debe leer cada vector Omegak.
Saludos,