NOTA: A pesar de haber resuelto los tres ejercicios, el primero y el tercero son aqullos de
los que estoy ms seguro, por lo que agradecera que fueran los que se tuvieran en cuenta.
Modifica esta funcin para que sea lo ms eficiente posible. Hay varias optimizaciones
posibles, se puntuar positivamente cualquier optimizacin razonable.
RESUPUESTA:
function [ distancias ] = mif_long(x,y,z )
distancias=sqrt(x.^2+y.^2+z.^2);
distancias(distancias>1)=100;
end
>>[X,z]=fun(A,b)
A continuacin tienes un Gateway escrito para esta subrutina, pero que contiene algunos
errores (5, al menos) Indica donde estn los errores y arrglalos.
void mexFunction( int nlhs, mxArray *plhs[],
uno=1;
if(nrhs!=2) {
} else if(nlhs!=2) {
mrows1 = mxGetM(prhs[0]);
ncols1 = mxGetN(prhs[0]);
mrows2 = mxGetM(prhs[1]);
ncols2 = mxGetN(prhs[1]);
if (ncols1 != mrows2) {
A = mxGetPr(prhs[0]);
fun_exam_c (A,b,X,z);
}
Pregunta 3)
3) El siguiente trozo de cdigo fortran toma una matriz A de dimensiones N por M, y sustituye
los elementos de las filas pares por los senos de esos elementos, y sustituye los elementos de
las filas impares por cosenos de esos elementos.
DO i=1,N
IF (mod(i,2)==0)
DO j=1,M
A(i,j)=sin(A(i,j))
END DO
ELSE
DO j=1,M
A(i,j)=cos(A(i,j))
END DO
END IF
END DO
Escribe un cdigo equivalente con solo dos lneas usando instrucciones matriciales de Fortran
90.
RESPUESTA:
A(2:N:2,:)=sin(A(2:N:2,:))
A(1:M:2,:)=sin(A(1:M:2,:))