0% encontró este documento útil (0 votos)
17 vistas15 páginas

3 PaseoMatLab Mat2GIO

Cargado por

arroyo nacho
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
17 vistas15 páginas

3 PaseoMatLab Mat2GIO

Cargado por

arroyo nacho
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd

PRÁCTICAS DE MATEMÁTICAS II (G.I.O.

)
Trabajo previo
UN PRIMER PASEO POR MatLab
NOTA: Antes de empezar a leer este documento debe haber iniciado una sesión de trabajo en
MatLab
según se indica en el documento Inicio_sesion_MatLab.pdf que ha descargado de
Moodle.

Índice
1. MatLab : Nociones básicas 1
1.1. Algunos detalles útiles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1

1.2. Aritmética elemental y asignaciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4

1.3. Vectores y matrices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4

1.4. Operaciones aritméticas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6

1.5. El operador : en MatLab. Listas implícitas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7

2. Trabajo con matrices 8


2.1. Algo más sobre aritmética y creación de matrices . . . . . . . . . . . . . . . . . . . . . . . . . . . 8

2.2. Acceso y modicación de los elementos de una matriz . . . . . . . . . . . . . . . . . . . . . . . . 11

1. MatLab : Nociones básicas


MatLab (MATrix LABoratory) es un paquete interactivo para cálculo cientíco basado en matrices cuya
utilización no requiere, en principio, del conocimiento de un lenguaje de programación. MatLab concentra en
un sólo programa un buen número de posibilidades de cálculo cientíco y es, hoy por hoy, uno de los entornos
de trabajo más empleados en muy distintos campos de la Ingeniería.

Básicamente existen dos modos de trabajo con MatLab

• trabajo interactivo, donde el usuario utiliza la línea de comandos de la ventana Command window para
introducir instrucciones que el programa ejecuta;

• trabajo programado (M-les, cheros con terminación .m), donde el usuario genera uno o varios cheros
con conjuntos de instrucciones, que se pueden ejecutar repetidas veces (con distintos datos) desde el modo
interactivo. De esta forma, el usuario puede incrementar las funciones disponibles en MatLab añadiendo las
suyas propias.

1.1. Algunos detalles útiles


• El símbolo >> es el prompt de MatLab, señala la línea de comandos e indica que está listo para aceptar
instrucciones. Para ejecutar una orden introducida en la línea de comandos, basta pulsar la tecla ENTER.
Atención. A partir de ahora, debe teclear todas las instrucciones que aparecen en este documento en la
sesión de MatLab que ha iniciado previamente.

• La orden clc limpia la pantalla de comandos y los borra. Comprobará su utilidad más adelante. La ins-
trucción home tiene efectos parecidos, pero no borra el histórico, al que se puede acceder con la barra de
scroll.

1
• La orden clear borra todas las variables no permanentes. Es posible borrar únicamente alguna de las
variables del espacio de trabajo. Para ello, use la orden clear seguida del nombre de la variable que desea
borrar.

• Si se tienen dudas sobre alguna función de MatLab, existe la orden help que, seguida del nombre de la
función, permite consultar las propiedades de cualquier función de MatLab. Por ejemplo, teclee

>>help clc

Además, hay un menú de ayuda muy potente en la parte superior derecha de la barra de menús que también
incorpora un buscador.

• Se interrumpe una ejecución con Ctrl + C.


• Las teclas ↑↓ permiten recuperar órdenes ejecutadas anteriormente. Tecleando primero un grupo de ca-
racteres y empleando las echas se puede recuperar un histórico de órdenes ejecutadas anteriormente que
comienzan por esos caracteres.

• Si se quiere guardar todo lo que se va a hacer en una sesión de trabajo con MatLab, antes de comenzar los
cálculos (justo al inicio de la sesión) debe teclearse la orden diary nombre_fichero.txt que graba en el
chero de texto nombre_fichero.txt todo lo que se haga en la sesión de trabajo. Con diary o y diary on
desactivamos y activamos la grabación en el chero.

Atención. En este momento teclee en la línea de comandos la instrucción


>> diary [Link]

donde NMAT debe reemplazarse por su número de matrícula con cinco dígitos. Al hacerlo, un chero con
este nombre debe aparecer en la ventana Current folder. ½Compruébelo!

• who indica qué variables se están utilizando (whos da una información más amplia sobre el tamaño y tipo
de variable).

• MatLab tiene algunas variables especiales:

• pi es el número π.
• eps es el  máquina, es decir, el número positivo más pequeño tal que 1 +  6= 1 en la unidad de coma
otante del ordenador.

>> eps

ans =

2.2204e-016

• inf es innito y NaN es una magnitud no numérica y se obtiene, por ejemplo, como resultado de inde-
terminaciones matemáticas del tipo 0/0 ó ∞ − ∞.
• realmin y realmax son los números reales positivos, más pequeño y más grande respectivamente, que
se pueden utilizar.

MatLab no tiene aritmética entera incorporada. Las operaciones con enteros son realizadas exactamente
mientras ocurran dentro de la precisión máquina (hasta unas dieciséis cifras). Aún así, MatLab reconoce en
cierto modo que se trata de números enteros y devuelve los resultados como si estuviera realizando aritmética
entera. Como ya se ha comentado con anterioridad, en general MatLab trabaja en aritmética de coma otante
de doble precisión. El usuario elige el formato de salida mediante la instrucción format. Algunos formatos son:

format short es el formato por defecto; punto jo y cuatro dígitos decimales.

format short e notación cientíca con cuatro dígitos decimales.

format long punto jo y catorce dígitos decimales.

format long e notación cientíca con quince dígitos decimales.

2
format rat aproximaciones al número racional más cercano.

Por ejemplo:

>> 2/3

ans =

0.6667 % formato por defecto (format short)

>> format long

>> 2/3

ans =

0.66666666666667

>> format long e

>> 2/3

ans =

6.666666666666666e-001

>> format short % recupera el formato por defecto

>> 2/3

ans =

0.6667

>> format short e

>> 2/3

ans =

6.6667e-001

>> format rat

>> 2/3

ans =

2/3

Atención. Antes de continuar, vuelva a teclear


>> format short e

para recuperar la notación cientíca con cuatro dígitos decimales, que es la que se utilizará de ahora en adelante.

Teclee ahora

>> home

Observe que, como ya se ha comentado anteriormente, el efecto de esta instrucción es llevar el cursor a la parte
superior izquierda de la Command Window. Puede ver las instrucciones introducidas anteriormente yendo hacia
arriba con la barra de scroll.

Teclee ahora

>> clc

Su efecto es limpiar la pantalla de los comandos que se han ido introduciendo, pero no podrá acceder a ellos
mediante la barra de scroll.

Como ya se ha mencionado, ninguna de estas dos instrucciones borra el valor de la variables. Por tanto, si
ahora teclea

>> ans

debe obtener el último valor que se le asignó a esta variable.

RECUERDE. En su sesión de trabajo de MatLab debe reproducir todas los resultados que se incluyen en este
documento. Debe por tanto teclear las instrucciones que vaya encontrando. No es necesario teclear el texto que
gura a la derecha del símbolo %.

3
1.2. Aritmética elemental y asignaciones
Como ha quedado dicho con anterioridad, el símbolo >> es el prompt de MatLab e indica que está listo
para aceptar instrucciones. Para ejecutar una orden introducida en la línea de comandos, basta pulsar la tecla
enter. El nombre de la variable a la que se asigna por defecto la salida es ans (abreviatura de answer), pero el
usuario puede asignar la salida a la variable que desee. Cuando se asigna una salida a una variable ya existente,
el valor que esta tenía anteriormente queda eliminado y sustituido por el nuevo. Algunos ejemplos elementales
se muestran a continuación que debe teclear en su sesión de MatLab de arriba a abajo.

% el (;) evita que se muestre la salida por pantalla

Algunos comentarios sobre estas líneas

• MatLab distingue entre mayúsculas y minúsculas, razón por la cual la variable a y la variable A son distintas.
El nombre de las variables sigue las reglas habituales de un lenguaje de programación: debe comenzar por
una letra, aunque puede contener números; no debe contener espacios en blanco ni algún tipo de símbolo
reservado (coma, punto y coma, dos puntos, guión,...).

Advertencia. Aunque MatLab sí distingue entre mayúsculas y minúsculas, y por tanto es seguro emplear
combinaciones de ambas en nombres de variables, las implementaciones en Windows no hacen estas distin-
ciones para los nombres de los cheros M-les creados por el usuario.

• Las asignaciones en MatLab se realizan como en cualquier lenguaje de programación, pero no requieren
ningún tipo de declaración de variables (en una primera aproximación). Además, por defecto, todas las
variables son matrices y los escalares se toman como un caso particular de matrices 1 × 1.
• Las operaciones se realizan siempre siguiendo el estándar IEEE de aritmética de coma otante de doble
precisión. Sin embargo, los resultados que, por defecto (format short), MatLab muestra por pantalla apa-
recen con (mucha) menos precisión de la que en realidad ha calculado. En esta práctica siempre vamos a
utilizar la representación que muestra los resultados en notación cientíca con cuatro dígitos decimales.

• El efecto de escribir un punto y coma (;) al nal de una instrucción es evitar que se muestre por pantalla
su resultado aunque sí se ejecuta (véase la penúltima instrucción de la columna derecha de los ejemplos
elementales mostrados anteriormente).

• Si se utiliza el símbolo %, todo lo introducido a partir de ahí MatLab lo interpreta como un comentario que
no se ejecuta (véase de nuevo la penúltima instrucción de la columna derecha de los ejemplos elementales
mostrados anteriormente).

1.3. Vectores y matrices


Por defecto, todas las variables en MatLab se tratan como arrays con dos índices; es decir, como matrices.
No obstante, es más simple comenzar aprendiendo a manipular vectores, es decir, arrays numerados con un úni-
co índice. Para ello, hay que tener en cuenta que MatLab distingue entre vectores la y columna. Se muestran
a continuación algunos ejemplos elementales de creación y manipulación de vectores, que debe reproducir de
arriba a abajo en su sesión de MatLab.

4
ans =

5 3 -3 % (½Atención! Es lo mismo que sumar el vector [2,2,2])

La matrices se denen entre corchetes escribiéndolas por las y se utiliza el punto y coma para separar una
la de otra. También se pueden separar los elementos de las las con comas. Cada elemento de una matriz se
reconoce por dos índices (m, n). El primero indica la la y el segundo la columna. Se muestran a continuación
algunos ejemplos elementales de creación y manipulación de matrices que debe reproducir entendiendo lo que
ocurre en cada momento.

5
1.4. Operaciones aritméticas
El producto (*) es, por defecto, la operación de producto de matrices. De la misma manera, las potencias
de una matriz ( ) son los productos repetidos de una matriz por sí misma. El símbolo de división (/) tiene
un signicado más complejo, relacionado con el producto por la inversa del denominador y se discutirá en la
práctica siguiente de la asignatura.

Ahora bien, MatLab también ofrece la posibilidad enormemente útil de realizar productos y divisiones de
vectores y matrices elemento a elemento (operaciones  vectorizadas ). Para ello, hay que emplear los símbolos
anteriores precedidos de un punto; es decir:

.* ./ .
El funcionamiento de estos operadores  vectorizados  se ilustra a continuación mediante algunos ejemplos.

>> a=[1 6 -8];

>> b=[-2 3 -4];

>> .
a *b % multiplicación elemento a elemento

ans =

-2 18 32

>> .
a /b % division elemento a elemento

ans =

-0.5000 2.0000 2.0000

>> a2
??? Error using ==>  Matrix must be square.

>> a.2 % potencia elemento a elemento


ans =

1 36 64

>> A=[1 6;-8 1];

>> B=[-2 3;-4 2];

>> A*B % producto matricial

ans =

-26 15

12 -22

>> .
A *B % producto elemento a elemento

ans =

-2 18

32 2

>> .
A /B % dividimos elemento a elemento

6
ans =

-0.5000 2.0000

2.0000 0.5000

>> A . 2
ans =

1 36

64 1

>> 
A 2 % al ser una matriz cuadrada es equivalente a A*A

ans =

-47 12

-16 -47

>> C=[4 1; 1 9]

C =

4 1

1 9

>> C.(1/2) % raíz cuadrada elemento a elemento (igual que ejecutar sqrt(C))
ans =

2 1

1 3

>> 
C (1/2) % potencia 1/2 de la matriz C (no es lo mismo que sqrt(C))

ans =

1.9899 0.2007

0.2007 2.9933

1.5. El operador : en MatLab. Listas implícitas


El operador : es muy útil en varios ámbitos. En particular, su importante papel en el contexto de la mani-
pulación de matrices se discutirá más adelante. Se comenta aquí su uso para generar listas implícitas, que son
listas de números (que MatLab trata como vectores la) en las que se especica el primer y último elementos y
un incremento, que es la distancia entre dos elementos consecutivos de la lista. Su uso es muy común en MatLab,
tanto para desarrollo de las capacidades grácas como en cualquier nivel de programación. La sintaxis es

primer elemento : incremento : último elemento",


aunque el último elemento puede no formar parte de la lista. Se muestran a continuación algunos ejemplos
que debe reproducir en su sesión de MatLab.

>> a=1:10 % si no se especica nada, por defecto el incremento es 1

a =

1 2 3 4 5 6 7 8 9 10

>> b=[Link] % el último elemento no es 10

b =

1 3 5 7 9

>> c=10:-1:1 % el incremento puede ser negativo

c =

10 9 8 7 6 5 4 3 2 1

>> d=0:0.1:1 % los números no tienen por qué ser enteros

d =

0 0.1000 0.2000 0.3000 0.4000 0.5000 0.6000 0.7000 0.8000 0.9000 1.0000

7
En este contexto de generación de listas de números conviene mirar las propiedades de la función linspace
(teclear help linspace). La función linspace(x1,x2,N), que MatLab incorpora, genera un número N de
puntos equiespaciados en el intervalo [x1,x2]. La lista siempre incluye los dos extremos del intervalo.

2. Trabajo con matrices


Puesto que, como ha quedado dicho, MatLab trabaja esencialmente con matrices de números reales o com-
plejos, se va a profundizar más en el manejo de matrices. Recuérdese que las matrices 1x1 son interpretadas
como escalares y las matrices la o columna como vectores. Por defecto todas las variables son matriciales y
nos podemos referir a un elemento con dos índices. Aún así, conviene saber que la matriz está guardada por co-
lumnas y que nos podemos referir a un elemento empleando sólo un índice, siempre que contemos los elementos
por columnas. Por ejemplo:

>> A=[-2 9;4 7] % matriz dos por dos, introducida por las

A =

-2 9

4 7

>> A(2,1) % elemento situado en la la dos, columna uno de la matriz

ans =

>> A(3) % tercer elemento (se lee por columnas)

ans =

>> A(:) % forma de ver A tal como MatLab la guarda

ans =

-2

2.1. Algo más sobre aritmética y creación de matrices


Con las operaciones suma (+) y producto (*) entre matrices hay que poner atención en que las dimensiones
de las matrices sean las adecuadas para realizar dichas operaciones. También hay que tener cuidado con el
símbolo de trasposición '. Cuando una matriz A es compleja, con A' se calcula su traspuesta conjugada. Para
calcular la traspuesta sin conjugar hay que escribir un punto antes; es decir: A .' (traspuesta sin conjugar).
>> A=[-2 3;-4 5;-6 7] % ó también A=[-2, 3;-4, 5;-6, 7]

A =

-2 3

-4 5

-6 7

>> B=[1 1;2 0;6 2];

>> A+B % matriz + matriz de la misma dimension

ans =

-1 4

-2 5

0 9

>> A'*A % matriz 2x3 * matriz 3x2

ans =

56 -68

8
-68 83

>> A*A' % matriz 3x2 * matriz 2x3

ans =

13 23 33

23 41 59

33 59 85

>> a=[3 -1];

>> A*a' % matriz * vector

ans =

-9

-17

-25

>> u=[1 2 3]

u =

1 2 3

>> v=[4 5 6]

v =

4 5 6

>> u*v' % la por columna (es un número que se denomina producto escalar)

ans =

32

>> u'*v % columna por la = matriz de rango unidad

ans =

4 5 6

8 10 12

12 15 18

A continuación se muestran algunos ejemplos sencillos de lo que se puede hacer con una matriz cuadrada.

>> B=[2 1;1 3];

>> B 2 % cuadrado de la matriz

ans =

5 5

5 10

>> B*B % producto de matrices

ans =

5 5

5 10

>> B. 2 % cuadrado de cada elemento de la matriz

ans =

4 1

1 9

>> .
B *B % producto elemento a elemento igual que B . 2

ans =

4 1

1 9

>> det(B) % determinante de B

ans =

>> rank(B) % rango de B

9
ans =

>> Bi=inv(B) % matriz inversa

Bi =

0.6000 -0.2000

-0.2000 0.4000

Importante: Hay que tener cierta precaución con funciones como rank, det ó inv ya que MatLab hace
los cálculos numéricamente (utilizando aritmética de precisión nita). En muchos casos el resultado suele ser
exacto; sin embargo en otros, MatLab puede obtener valores incorrectos por culpa de los redondeos; aún así,
MatLab suele avisar si encuentra una cierta proximidad de la matriz a la singularidad. Por ejemplo:

>> A = magic(10); % genera una matriz 10x10 (nótese el ; al nal de línea)

>> Ai = inv(A); % calcula la inversa pero MatLab produce una advertencia (un warning)

Warning: Matrix is close to singular or badly scaled. Results may be inaccurate. RCOND = 1.243297e-18.

EJERCICIO 1: Haga el producto de la matriz A por su inversa. Lo puede conseguir mediante la instrucción:
>> A*Ai

Observe que el resultado es una matriz MUY DISTINTA de la matriz identidad.

Aparece aquí uno de los problemas más importantes que presenta el cálculo numérico con aritmética de
presión nita. A lo largo del curso se estudiarán estos problemas en el contexto del Álgebra lineal que, en
particular, darán lugar a la introducción del concepto de número de condición de una matriz. No obstante, el
ejemplo anterior ya pone claramente de maniesto que hay que tomar precauciones a la hora de utilizar los
resultados numéricos que proporciona un ordenador, estableciendo criterios que permitan conar en los mismos.

La instrucción magic que se acaba de utilizar es una de las muchas funciones que posee MatLab para crear
matrices sin tener que introducirlas elemento a elemento (teclear help gallery para ver una lista de algunas
de estas funciones). Algunos ejemplos importantes son:

>> ones(3) % matriz 3x3 llena de unos

A =

1 1 1

1 1 1

1 1 1

>> zeros(3,5) % matriz 3x5 llena de ceros

ans =

0 0 0 0 0

0 0 0 0 0

0 0 0 0 0

>> eye(2) % identidad 2x2

ans =

1 0

0 1

>> diag([1 3 -4]) % matriz diagonal

ans =

1 0 0

0 3 0

0 0 -4

>> A=[1 2; 3 4];

>> diag(A) % vector de elementos diagonales de A

ans =

10
>> diag(diag(A)) % truco para extraer la diagonal de una matriz

ans =

1 0

0 4

Utilizaremos también la función rand para generar matrices cuyas entradas son números generados de forma
pseudoaleatoria.

2.2. Acceso y modicación de los elementos de una matriz


Aquí se trata de practicar en el uso de las herramientas de MatLab que permiten manipular matrices. Se va
a hacer a través de los ejemplos que siguen.

>> A=[2 3;4 5;6 7]

A =

2 3

4 5

6 7

>> A(2,1) % se toma el elemento de la la 2 y la columna 1 de A

ans =

>> A(2,3)

??? Index exceeds matrix dimensions.

>> A(:,1) % vector columna con la primera columna de A (nótese el uso del operador :)

ans =

>> A(2,:) % vector la con la segunda la de A

ans =

4 5

>> A(4) % cuarto elemento de A, contando por columnas

ans =

>> size(A) % dimensiones de A (devuelve un vector con dos componentes)

ans =

3 2

>> length (A) % mayor de las dimensiones de A

ans =

>> v=[-3 4 7]; % vector la

>> v(2) % segundo elemento

ans =

>> v(1,2) % segundo elemento (primera la, segunda columna)

ans =

La referencia a elementos de una matriz permite cambiar el valor de un elemento mediante una sencilla
operación de asignación. Esto también se puede hacer con una la o columna.

>> A=[2 -3;-4 5;6 -7];

11
>> A(3,1)=1/2 % cambio de un elemento de A

A =

2.0000 -3.0000

-4.0000 5.0000

0.5000 -7.0000

>> A(2,:)=[1 1]

A =

2.0000 -3.0000

1.0000 1.0000

0.5000 -7.0000

Al denir un nuevo elemento fuera de las dimensiones de la matriz se reajusta el tamaño de la matriz dando
el valor 0 a los restantes elementos >> A(3,4)=1 % asignación fuera del espacio denido

A =

2.0000 -3.0000 0 0

-4.0000 5.0000 0 0

0.5000 -7.0000 0 1.0000

>> size (A)

ans =

3 4

La matriz vacía es la matriz que no tiene ningún elemento. Se escribe entre corchetes (es decir, [ ]) y puede
ser muy útil a la hora de borrar las o columnas de una matriz dada, como se ve en el siguiente ejemplo,

>> A=[1 -1 2;2 0 1;0 1 -3];

>> A(:,2)=[] % borramos la segunda columna

A =

1 2

2 1

0 -3

EJERCICIO 2: Construya una matriz 6x6 aleatoria. Para ello teclee las instrucciones:
>> rand('state',NMAT) % NMAT debe ser su número de matrícula con cinco dígitos.

>> A=rand(6);

En la matriz A, haga igual a cero los elementos de las las 3 y 4 e igual a 1 los elementos de las las 1 y 6
y asigne el resultado a una variable B.

EJERCICIO 3: Construya una matriz 6x6 aleatoria. Para ello teclee las instrucciones:
>> rand('state',NMAT) % NMAT debe ser su número de matrícula con cinco dígitos.

>> C=rand(6);

En la matriz C, elimine la la 3 y, a continuación, la columna 5. Asigne el resultado a una varible D.

MatLab puede trabajar con grupos de las y columnas (no necesariamente consecutivos) o concatenar ma-
trices para formar matrices más grandes siempre que los tamaños sean compatibles. >> A = diag([1 2 3]);

>> [A,ones(3,2)] % ampliar con columnas

ans =

1 0 0 1 1

0 2 0 1 1

0 0 3 1 1

>> [A;eye(3)] % ampliar con las

ans =

1 0 0

0 2 0

12
0 0 3

1 0 0

0 1 0

0 0 1

>> A=[1 3;2 1];

>> B=[A eye(2);zeros(2) A] % matriz formada por 4 bloques 2x2

B =

1 3 1 0

2 1 0 1

0 0 1 3

0 0 2 1

En general, empleando listas implícitas o simplemente vectores de índices, se pueden extraer submatrices de
una matriz, incluso repitiendo las y columnas.

>> B=[1 3 1 0 -1; 2 1 0 1 7; 0 0 1 3 4;0 0 2 1 9]

B =

1 3 1 0 -1

2 1 0 1 7

0 0 1 3 4

0 0 2 1 9

>> B(2:3,2:4) % segunda a tercera las y segunda a cuarta columnas

ans =

1 0 1

0 1 3

>> B(2,1:3) % segunda la y columnas de primera a tercera

ans =

2 1 0

>> B(1,[Link]) % columnas impares de la primera la

ans =

1 1 -1

>> B(2,:) % segunda la (todas las columnas)

ans =

2 1 0 1 7

>> B(2,4) % elemento que ocupa el lugar (2,4)

ans =

>> B(:,3) % tercera columna (todas las las)

ans =

>> B([3 1 1],:) % las 3, 1 y 1 (todas las columnas)

ans =

0 0 1 3 5

1 3 1 0 -1

1 3 1 0 -1

>> C= [1 -2;7 -2];

>> C(:) % lista con todos los elementos de la matriz

13
ans =

-2

-2

Este forma de manipular matrices proporciona un método sencillo para intercambiar las o columnas de una
matriz.

>> A=[2 3;1 4;7 6]

A =

2 3

1 4

7 6

>> A([1 3],:)=A([3 1],:) % intercambio de las las 1 y 3

A =

7 6

1 4

2 3

EJERCICIO 4: Construya una matriz 6x6 aleatoria. Para ello teclee las instrucciones:
>> rand('state',NMAT) % NMAT debe ser su número de matrícula con cinco dígitos.

>> E=rand(6);

En la matriz E, intercambie las columnas 3 y 5 y, en la matriz resultante, intercambie las las 1 y 3. Asigne
el resultado a una variable F.

Veamos a continuación algunas nociones sobre ordenación de elementos en una matriz.

>> x=[1 2 3 5 3 1 -7];

>> sort(x) % ordena los elementos en orden ascendente

ans =

-7 1 1 2 3 3 5

>> A=[-2 4 7; 5 -6 -4;-2 -7 -9]

A =

-2 4 7

5 -6 -4

-2 -7 -9

>> sort(A) % ordena los elementos dentro de cada columna

ans =

-2 -7 -9

-2 -6 -4

5 4 7

El orden descendente se puede obtener a partir del ascendente con cambios de posiciones de los elementos,
pero también con un doble cambio de signo:

-sort(-A) % orden descendente

EJERCICIO 5: Construya una matriz 6x6 aleatoria. Para ello teclee las instrucciones:
>> rand('state',NMAT) % NMAT debe ser su número de matrícula con cinco dígitos.

>> G=rand(6);

A partir de G, genere otra matriz cuyas columnas 1, 3 y 5 no cambien, pero las columnas 2, 4 y 6 estén
ordenadas de forma ascendente. Asigne el resultado a una variable J.

14
½½ATENCIÓN!! Una vez nalizado este Paseo por MatLab , teclee en la línea de comandos
la instrucción
>> diary o

15

También podría gustarte