Guía de Matlab
Características del lenguaje
Tipos de datos
Entero (int): 3, 6 10,-1.
Float: 3.141691
Double: 3.1416914578951346
Cadena: 'Esto es una cadena', "Esto tambien", '3', "3.141691"
Booleano: True(1), False(0)
Lógicos: and(&&), or (||) igual(==) y negación(~)
Estructura de datos en Matlab
Matrices y vectores
Estructuras
CellArrays
Tablas
Strings
Primeras nociones de Matlab
Matlab considera diferente las minusculas y las mayusculas en la declaración de sus variables.
Si no queremos que aparezca el resultado en la linea de comandos tenemos que agregar ; despues de cada sentencia.
Podemos escribirn en una misma linea siempre y cuando pongamos el ; entre las sentencias
Borrar las variables del workspace y limpiar la linea de comandos
clc % Borra todo en la línea de comandos
Matrices y vectores
Creación
En Matlab la forma de crear una vector o una matriz son mediante los corchetes ([]) y se realizá de la siguiente manera :
%1) Para un vector horizontal
%2) Para un vector vertical
%3) Para un vector secuancial
v3=1:100
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50
%4) Para un vector secuencial de numeros pares del 2 al 100
v4=2:2:100
2 4 6 8 10 12 14 16 18 20 22 24 26 28 30 32 34 36 38 40 42 44 46 48 50 52 54 56 58 60 62 64 66 68 70 72 74 76 78 80 82 84 86 88 90 92 94 96 98 100
%5) Para un vector secuencial de numeros impares del 1 al 99
v5=1:2:100
1 3 5 7 9 11 13 15 17 19 21 23 25 27 29 31 33 35 37 39 41 43 45 47 49 51 53 55 57 59 61 63 65 67 69 71 73 75 77 79 81 83 85 87 89 91 93 95 97 99
%6) Para una matriz de 3x2
%7) Para una matriz cuadrada de 4x4
M2=[2 4 2 0;14 17 3 7;1 7 34 6;8 0 -23 -3]
2 4 2 0
14 17 3 7
1 7 34 6
8 0 -23 -3
%8)Para una matriz con vectores secuenciales
%9) Creación de matrices diversas
Manejo de Matrices
En el manejo de matrices nos referimos a como manipularla de tal manera que podamos obtener valores o submatrices de una matriz dada.
[Numfilas1, NumColumnas1]=size(A)
Numfilas1 = 3
NumColumnas1 = 3
%Tamaño de un vector ya sea horizontal o vertical
%La longitud del vector vacio es 0
% Como acceder a los elementos de una matriz
%Para acceder a algun elemento de la matriz es necesario especificar su
%fila y columna donde esta ubicado, donde el primer argumento del
%parentesis se refiere a las filas y el segundo se refiere a las columnas)
%elemento5= A(4,2); %Hay problema porque la matriz es de 3 x 3
%Obtener toda una fila o columna de una matriz (para obtener toda una fila
%o columna es necesario los dos puntos(:))
%Obtengamos toda la fila 2 de A
%Obtengamos toda la columa 2 de A
%Colocamos los valores de lo que seran las filas y las columnas de la submatriz
submatriz1= A(1:2,1:2) %Realizarlo por una secuencia
submatriz2=A([1,3],[1,3]) %Escribir de manera puntual las filas y columnas
%Cambiar elementos de una matriz o un vector
%Para cambiar los valores de una matriz o un vector solo tienes que
%acceder a el por medio de las filas y columnas y asignarle el nuevo
%valor, este puede ser un solo valor, toda una fila, toda una columna o una
A(3,2)=0 % Cambia un valor
A(3,:)=1:3 % Cambia una columna
A(:,3)=4:6 % Cambia una fila
B(1:2,1:2)= C(1:2,1:2) %Cambia una submatriz
C(4,4)=-1 % A pesar de que el tamaño de la matriz es de 3 x 3 le asigna ese valor a la matriz y todo lo demas lo rellena con cero
2 3 0 0
8 9 0 0
1 1 0 0
0 0 0 -1
Operaciones Matriciales
Las operaciones matriciales son el conjunto de operaciones que se pueden realizar a las matrices cumpliendo ciertas condiciones.
% Para la suma es importante que las dos matrices a sumar sean del mismo tamaño
Suma1= A+B %No hay problema
%Suma2= A+M1; %Hay problema porque no coinciden los tamaños de las matrices
Suma3= B+A %No hay problema con sumar las matrices
%Para la suma es importante que las dos matrices a sumar sean del mismo tamaño
Resta1= A-B %No hay problema
%Resta2= A-M1; %Hay problema porque no coinciden los tamaños de las matrices
Resta3= B-A %No hay problema pero no es lo mismo que A-B sino su negativo
%Multiplicación por un escalar
%Es la multiplicación punto a punto(valor a valor) de una cantidad a todos
%los valores de la matriz
Escalar2= (1/2)*C
1.0000 1.5000 0 0
4.0000 4.5000 0 0
0.5000 0.5000 0 0
0 0 0 -0.5000
Escalar4= 0.3*B
0.6000 0.9000 2.1000
2.4000 2.7000 1.5000
-0.6000 0.3000 0
%Es la multiplicación que se hace uno por uno (muy diferente a la
%matricial) y es necesario que las matrices tengan los mismo tamaños
MulPun1=A.*B %No hay problema
MulPun2=B.*A %Es lo mismo que A.*B
%MulPun3=A.*M1; %Hay problema porque los tamaños de las matrices no coinciden
% Divide elemento a elemento cada valor de las matrices o vectores
DP1=A./B
1.5000 3.0000 0.5714
0.5000 0.7778 1.0000
-0.5000 2.0000 Inf
DP2=B./A
0.6667 0.3333 1.7500
2.0000 1.2857 1.0000
-2.0000 0.5000 0
DP3=v1./v2 % ¿Y aquí que sucede?
1.0000 2.3333 0 2.6667 0.3333
0.4286 1.0000 0 1.1429 0.1429
Inf Inf NaN Inf Inf
0.3750 0.8750 0 1.0000 0.1250
3.0000 7.0000 0 8.0000 1.0000
%La transpuesta de una matriz
%La transpuesta de una matriz es aquella matriz que cambia sus filas por
%columnas y sus columnas por filas.
Trans3=C'
2 8 1 0
3 9 1 0
0 0 0 0
0 0 0 -1
%Multiplicación matricial
%Es la multiplicación de dos matrices que cumplen que el numero de columnas
%de la primera es igual al número de filas de la segunda y da como
%resultado una matriz con el mismo numero de filas de la primera matriz por
%el mismo numero de columnas de la segunda matriz.
Multi1=A*B %No hay problema
70 94 66
54 80 63
6 27 17
Multi2=A*M1 %No hay problema
%Multi3=C*v; %Si hay problema no coinciden el numero de columnas de C con el numero de filas de v
Multi4=v*v' %No hay problema
%Potencia matricial de una matriz
PM1=A^2
49 98 81
45 95 81
17 35 50
PM2=A^3
620 1289 1172
596 1232 1141
241 498 543
%Potencia puntual de una matriz
PP2=A.^3
27 729 64
64 343 125
1 8 216
%La inversa de una matriz es aquella matriz que cumple que A*Ainv=I es
%decir es buscar una matriz que al multiplicarse por ella nos da la
%identidad, por lo tanto la matriz debe ser cuadrada
Inv1=inv(A) %NO hay problema
-0.4507 0.6479 -0.2394
0.2676 -0.1972 -0.0141
-0.0141 -0.0423 0.2113
Inv2=inv(B) %No hay problema
-0.0352 0.0493 -0.3380
-0.0704 0.0986 0.3239
0.1831 -0.0563 -0.0423
%Inv3=inv(C); %Si hay problema porque no es cuadrada
%Inv4=inv(v); %Si hay problema porque es un vector
%Agreguemos una matriz mas
D=[1 2 3; 2 4 6; 10 4 3];
inv5=inv(D); %No es posible porque existe una combinación lineal en sus filas
Warning: Matrix is singular to working precision.
%Determinante de una matriz
% Para que una matriz tenga determinante tiene que ser cuadrada
%det(M1) % No es posible porque no es cuadrada la matriz
%det(v) % No esposible el determinante de un vector
Operaciones con matrices
Son las formas de obtener un determinado valor o la busqueda de algún valor, asi como ampliar o reducir una matriz.
% Máximos y mínimos de valores por columna
[maximos2, posicion1]=max(A)
[minimos2, posicion2]=min(A)
% Máximos y mínimos de valores por fila
[maximos3, posicion3]=max(A')
[minimos3, posicion4]=min(A')
% Máximos y minimos totales
% Ordenamiento por columna
S1=sort(A) %Ordena de manera ascendente
S2=sort(A,'descend') %ordena de manera descendiente
S3=sort(C)
S3 =
0 0 0 -1
1 1 0 0
2 3 0 0
8 9 0 0
S5=sort(A,2) %Ordena de manera ascendente
S6=sort(A,2,'descend')' %Ordena de manera descendiente
S7=sort(C')' %Otra forma
S7 =
0 0 2 3
0 0 8 9
0 0 1 1
-1 0 0 0
S8=sort(v')'; %Para un vector es lo mismo si es por fila o por
%Para encontrar valores dentro de una matriz se requiere de una condicional
%y te devuelve las posiciones
Posc= find(A==0) %la posicion de la matriz en donde es cero recorriendo por columnas
Posc =
0×1 empty double column vector
[Posfila1, Poscolumna1]= find(A==0) % Te da la ubicación de en filas y
Posfila1 =
0×1 empty double column vector
Poscolumna1 =
0×1 empty double column vector
% de la condicion a buscar
[Posfila2, Poscolumna2]= find(A>3 & A<7) % te da los valores entre 3 y 7
%Si lo que requeires es saber cuales son esos valores entonces lo colocas
val2= A(A==3 | A==4) %valores de la matriz que sean 3 o 4
% Borrar elementos de una matriz
%Borrar elementos en una matriz no es posible porque esto haria que la
%matriz no quede en el formato adecuado ya que por definición una matriz no
%puede tener valores en blanco (ojo: valores en blanco no son valores NA)
%por lo tanto no se puede ya que marcaria error el Matlab
%Borrar toda una fila o toda una columna
%Para borrar toda una fila o una columan en una matriz se utiliza los []
E=A %Asigna la misma matriz A a E para no perder A
E(:,2)=[] %Borrar la columna 2
E(1,:)=[] %Borra la fila 1
%Para concatenar matrices se hace igual que como creamos una matriz
%Concatenacion por columna es posible cuando coinciden los tamaños de las
F=[A,B]
F =
3 9 4 2 3 7
4 7 5 8 9 5
1 2 6 -2 1 0
%Concatenacion por filas es posible cuando coinciden los tamaños de las
%columnas de ambas matrices
G=[A;B]
G =
3 9 4
4 7 5
1 2 6
2 3 7
8 9 5
-2 1 0
Matrices predefinidas en Matlab
Son matrices que maneja Matlab y no es necesario crearlo o leerlo, son matrices comunes.
%Es la matriz que tiene unos en la diagonal y es cuadrada
I1=eye(3) %Matriz identidad de 3x3
I2=eye(4) %Matriz identidad de 4x4
I2 =
1 0 0 0
0 1 0 0
0 0 1 0
0 0 0 1
%Es la matriz que tiene todos sus valores iguales a cero y puede ser
Cero1=zeros(2,3) %Matriz de 2x3
Cero2=zeros(1,4) %Vector horizontal
Cero3=zeros(4,1) %Vector vertical
Cero5=zeros(3) %Matriz cuadrada de 3x3
%Es una matriz que tiene todos sus valores iguales a 1 y no importa si es
Unos1=ones(2,3) %Matriz de 2x3
Unos2=ones(1,4) %Vector horizontal
Unos3=ones(4,1) %Vector vertical
Unos4=ones(3) %Matriz cuadrada de 3x3
%Es la matriz que tiene valores solo en la diagonal principal, la matriz
Diag1=diag(v)
Diag1 =
1 0 0 0 0
0 2 0 0 0
0 0 3 0 0
0 0 0 4 0
0 0 0 0 5
%Si lo que recibe la función es una matriz entonces la funación devuelve
%los elementos de la diagonal
Diag3=diag([1 3 0; 2 9 3; 0 1 0])
Diag4=diag([]) %La diagonal del conjunto vacio es vacio
Convertir una matriz a vector
Para convertir una matriz en vector puede ser solamente poniendo los dos puntos y lo convierte a un vector recorriendo los valores por columna
Avectorver=A(:) %vector vertical
Avectorhor=A(:)' %vector horizontal
Funciones matematicas con matrices
Se refiere a las distintas funciones matematicas que le podemos realizar a un número, a una matriz o a un vector.
Algunas funciones son:
Trigonometricas: sin(x), cos(x), tan(x), csc(x), cot(x), sec(x)
Logaritmicas: log(x), log10(x), log2(x)
Exponenciales: exp(x), srqt(x)
sin(A)
ans =
0.1411 0.4121 -0.7568
-0.7568 0.6570 -0.9589
0.8415 0.9093 -0.2794
cos(A)
ans =
-0.9900 -0.9111 -0.6536
-0.6536 0.7539 0.2837
0.5403 -0.4161 0.9602
tan(A)
ans =
-0.1425 -0.4523 1.1578
1.1578 0.8714 -3.3805
1.5574 -2.1850 -0.2910
log(A)
ans =
1.0986 2.1972 1.3863
1.3863 1.9459 1.6094
0 0.6931 1.7918
A^3
ans =
620 1289 1172
596 1232 1141
241 498 543
log2(v1)
ans =
1.5850 2.8074 -Inf 3.0000 0
sqrt(A)
ans =
1.7321 3.0000 2.0000
2.0000 2.6458 2.2361
1.0000 1.4142 2.4495
exp(v1)
ans =
1.0e+03 *
0.0201 1.0966 0.0010 2.9810 0.0027
Comunicación con el usuario
Funciones donde podemos interactuar con el usuario al momento de programar en Matlab
Matriz=input('Escribe una matriz: ')
Edad=input('Escribe tu edad: ')
Nombre= input('Escribe tu nombre: ','s')
% Desplejar un mensaje de Error
%error('Matriz incorrecta');
%Mezclar numero y cadenas previamente leidas
fprintf('%s tiene %d años de edad\n',Nombre,Edad)
Eduardo tiene 40 años de edad
Estructura Struct
%Forma 1 de crear una estructura
Alumnos.Nombre='Pedro Castellanos'
Alumnos =
Nombre: 'Pedro Castellanos'
Alumnos.Direccion='Calle 20 #205 x 10 y 12 Sisal Yucatán, México'
Alumnos =
Nombre: 'Pedro Castellanos'
Direccion: 'Calle 20 #205 x 10 y 12 Sisal Yucatán, México'
Alumnos.Notas=[60 80 90]
Alumnos =
Nombre: 'Pedro Castellanos'
Direccion: 'Calle 20 #205 x 10 y 12 Sisal Yucatán, México'
Notas: [60 80 90]
Alumnos.Edad=25
Alumnos =
Nombre: 'Pedro Castellanos'
Direccion: 'Calle 20 #205 x 10 y 12 Sisal Yucatán, México'
Notas: [60 80 90]
Edad: 25
Alumnos.Semestre=[60 70 85;70 95 100]
Alumnos =
Nombre: 'Pedro Castellanos'
Direccion: 'Calle 20 #205 x 10 y 12 Sisal Yucatán, México'
Notas: [60 80 90]
Edad: 25
Semestre: [2×3 double]
Alumnos.Profesores.Cantidad=3
Alumnos =
Nombre: 'Pedro Castellanos'
Direccion: 'Calle 20 #205 x 10 y 12 Sisal Yucatán, México'
Notas: [60 80 90]
Edad: 25
Semestre: [2×3 double]
Profesores: [1×1 struct]
%Forma 2 de crear una estructura
Alumnos2=struct('Nombre','Pedro','Direccion','Conocido','Notas',[60 80 90],'Edad',25,'Semestre',[60 70 85;70 95 100])
Alumnos2 =
Nombre: 'Pedro'
Direccion: 'Conocido'
Notas: [60 80 90]
Edad: 25
Semestre: [2×3 double]
%Otra forma es crear una estructura vacia
Alumnos(2).Nombre='Jose Puerto'
Alumnos =
Nombre
Direccion
Notas
Edad
Semestre
Profesores
Alumnos(2).Direccion='Calle 20 #205 x 10 y 12 Sisal Yucatán, México'
Alumnos =
Nombre
Direccion
Notas
Edad
Semestre
Profesores
Alumnos(2).Notas=[60 80]
Alumnos =
Nombre
Direccion
Notas
Edad
Semestre
Profesores
Alumnos(2).Edad=25
Alumnos =
Nombre
Direccion
Notas
Edad
Semestre
Profesores
Alumnos(2).Semestre=[60 70 85;70 95 100]
Alumnos =
Nombre
Direccion
Notas
Edad
Semestre
Profesores
Alumnos(2).Profesores.Cantidad=3
Alumnos =
Nombre
Direccion
Notas
Edad
Semestre
Profesores
Alumnos3(1).Nombre='Kenia Manzanilla'
Alumnos3 =
Nombre: 'Kenia Manzanilla'
Alumnos3(1).Direccion='Calle 20 #205 x 10 y 12 Sisal Yucatán, México'
Alumnos3 =
Nombre: 'Kenia Manzanilla'
Direccion: 'Calle 20 #205 x 10 y 12 Sisal Yucatán, México'
Alumnos3(1).Notas=[60 80 100]
Alumnos3 =
Nombre: 'Kenia Manzanilla'
Direccion: 'Calle 20 #205 x 10 y 12 Sisal Yucatán, México'
Notas: [60 80 100]
Alumnos3(1).Edad=25
Alumnos3 =
Nombre: 'Kenia Manzanilla'
Direccion: 'Calle 20 #205 x 10 y 12 Sisal Yucatán, México'
Notas: [60 80 100]
Edad: 25
Alumnos3(1).Semestre=[60 70 85;70 95 100]
Alumnos3 =
Nombre: 'Kenia Manzanilla'
Direccion: 'Calle 20 #205 x 10 y 12 Sisal Yucatán, México'
Notas: [60 80 100]
Edad: 25
Semestre: [2×3 double]
Alumnos3(1).Profesores.Cantidad=3
Alumnos3 =
Nombre: 'Kenia Manzanilla'
Direccion: 'Calle 20 #205 x 10 y 12 Sisal Yucatán, México'
Notas: [60 80 100]
Edad: 25
Semestre: [2×3 double]
Profesores: [1×1 struct]
Alumnos
Alumnos =
Nombre
Direccion
Notas
Edad
Semestre
Profesores
%Acceder a los elementos de una estructura
Alumnos.Nombre %Acceder a todos los elementos de la variable de la estructura sino pongo el valor
ans = 'Pedro Castellanos'
Alumnos(2).Nombre %Acceder directamente al valor de la variable
Alumnos(2).Semestre(:,3) %Acceder a los elementos de una matriz o de un vector utilizando lo que conocemos de dicha estructura
Apellido=Alumnos(2).Nombre(6:end) %Buscamos el apellido
%Concatenar resultados de struct
%Calif=cat(1,Alumnos.Notas) %Concatenar por filas (Número 1 de la
%función cat) en este caso no se puede porque quedaria una matriz con
CalifVec=cat(2,Alumnos.Notas) %Concatena por columnas (Número 2 de la funcion cat)
Estructura CellArray
% Forma de crear un cellarray
CellDatos={cad1 cad2; A B; c d}
CellDatos =
{'Temperatura' } {'Presion' }
{5×5 double } {3×3 double}
{[1 2 3 4 5 6 7 8 9 10]} {5×1 double}
%Para que se cumpla la forma matricial debemos agregar una matriz vacia o
CellDatos3={cad1 cad2;A B;[] d}
CellDatos3 =
{'Temperatura'} {'Presion' }
{5×5 double } {3×3 double}
{0×0 double } {5×1 double}
CellDatos2=cell(3,2)
CellDatos2 =
{0×0 double} {0×0 double}
{0×0 double} {0×0 double}
{0×0 double} {0×0 double}
% Acceder a los elementos de un cellarray es mediante el simbolo {}
Variable1=CellDatos{1,1};
matriz=CellDatos{2,2}(3,:); %Acceder directamente a los datos de la matriz utilizando los parentesis y lo viste en matrices
vector=CellDatos{3,1}(4:7);
%Forma grafica de ver un cellarray
Cadenas (char)
%Una cadena es considerada en matlab como un vector horizontal
cadena='Esto es una cadena';
cadena2="esto es una cadena"
cadena2 = "esto es una cadena"
%Accedemos a cada elemento de la cadena por sus indices como si fuera un
posionesblanco=strfind(cadena,' ') % Busca los espacios en blanco y devuelve un vector
posioneses=strfind(cadena,'estaba') %Lo que devuelve cuando no encuentra nada es un vacio
isempty(posioneses) % Esta es la forma lógica de determinar si es vacio
strcmp(cadena, cadena2) % Devuelve un valor donde 0 es falso y 1 es verdadero considerando las mayusculas y minusculas
strcmpi(cadena, cadena2) % NO importa las mayusculas y minusculas porque los considera igual.
cadena4=[cadena ' ' cadena3];
split1=strsplit(cadena) %Separa la cadena por default en espacios en blanco y lo coloca en un cellarray
split1 =
{'Esto'} {'es'} {'una'} {'cadena'}
split2=strsplit(cadena,'es') %Separa con respecto a una cadena
split2 =
{'Esto '} {' una cadena'}
cadena4=replace(cadena2, 'esto', 'Esto')
cadena4 = "Esto es una cadena"
%Pasar de mayusculas a minusculas o al reves
cad3='oh, oh esto es una gran sorpresa oh'
cad3 = 'oh, oh esto es una gran sorpresa oh'
Estructura String
Matrizcad=[cadena cadena2; cadena3 "Este es 20"]
Matrizcad =
"esto es una cadena" "esto es una cadena"
"34" "Este es 20"
%Otra forma de crea un string
Matrizcad2=[string(CellDatos{1,1}); string(CellDatos{1,2})];
splitstr1=strsplit(str1);
unicos=unique(splitstr1);
%Accedemos como si fuera una matriz o vector
unicos(1:4)
ans =
"es" "esto" "gran" "oh"
Tablas
Fumador = logical([1;0;1;0;1]);
Altura = [176;163;131;133;119];
PresionSanguinea = [124 93; 109 77; 125 83; 117 75; 122 80];
T1 = table(Edad, Fumador, Peso, Altura, PresionSanguinea)
T1 =
Edad Fumador Peso Altura PresionSanguinea
____ _______ ____ ______ ________________
38 true 71 176 124 93
43 false 69 163 109 77
38 true 64 131 125 83
40 false 67 133 117 75
49 true 64 119 122 80
T2=table([38;43;38;40;49],logical([1;0;1;0;1]),[71;69;64;67;64],[176;163;131;133;119],[124 93; 109 77; 125 83; 117 75; 122 80],'VariableNames',{'Edad','Fumador','Altura','Peso','PresionSanguínea'}, 'RowNames',{'P1','P2','P3','P4','P5'})
T2 =
Edad Fumador Altura Peso PresionSanguínea
____ _______ ______ ____ ________________
P1 38 true 71 176 124 93
P2 43 false 69 163 109 77
P3 38 true 64 131 125 83
P4 40 false 67 133 117 75
P5 49 true 64 119 122 80
T3.PresionSanguinea=PresionSanguinea;
T3.Comentarios=["Paciente Obeso";"Paciente con presión alta";"Paciente diabetico";"Paciente con presion baja";"Paciente normal"];
T3
T3 =
Edad Fumador Altura Peso PresionSanguinea Comentarios
____ _______ ______ ____ ________________ ___________________________
38 true 176 71 124 93 "Paciente Obeso"
43 false 163 69 109 77 "Paciente con presión alta"
38 true 131 64 125 83 "Paciente diabetico"
40 false 133 67 117 75 "Paciente con presion baja"
49 true 119 64 122 80 "Paciente normal"
T1.Properties.DimensionNames
ans =
{'Row'} {'Variables'}
%Acceso a los elementos de la tabla
T1.Row % Por filas
ans =
0×0 empty cell array
mean(T1.Altura) % Por columnas
MatrizTabla=T1.Variables % Totales como matriz ojo si tiene cadenas que pasa?
MatrizTabla =
38 1 71 176 124 93
43 0 69 163 109 77
38 1 64 131 125 83
40 0 67 133 117 75
49 1 64 119 122 80
T4=T1(2:4,2:4) %Devuelve una tabla
T4 =
Fumador Peso Altura
_______ ____ ______
false 69 163
true 64 131
false 67 133
T5=T3(:,[1,3,4,5]) %Toma solo las columnas que quieres
T5 =
Edad Altura Peso PresionSanguinea
____ ______ ____ ________________
38 176 71 124 93
43 163 69 109 77
38 131 64 125 83
40 133 67 117 75
49 119 64 122 80
MatrizT5=T5.Variables %Convierte a matriz
MatrizT5 =
38 176 71 124 93
43 163 69 109 77
38 131 64 125 83
40 133 67 117 75
49 119 64 122 80
%Cambiando el nombre de las dimensiones row y variables
T1.Properties.DimensionNames = {'Pacientes','Datos'};
T1.Properties
ans =
TableProperties with properties:
Description: ''
UserData: []
DimensionNames: {'Pacientes' 'Datos'}
VariableNames: {'Edad' 'Fumador' 'Peso' 'Altura' 'PresionSanguinea'}
VariableDescriptions: {}
VariableUnits: {}
VariableContinuity: []
RowNames: {}
CustomProperties: No custom properties are set.
Use addprop and rmprop to modify CustomProperties.
%Agregando nombre a las filas de una tabla
T1.Properties.RowNames = {'P1','P2','P3','P4','P5'};
%Colocar el apellido de los paciente como nombre de filas no como variable
Apellidos=["Moreno";"Peniche";"Medina";"Ramirez";"Aragon"]
Apellidos =
"Moreno"
"Peniche"
"Medina"
"Ramirez"
"Aragon"
T1.Properties.RowNames=Apellidos;
%Acceder por nombres de filas y columnas
T1('Ramirez',:) % Toda una fila
ans =
Edad Fumador Peso Altura PresionSanguinea
____ _______ ____ ______ ________________
Ramirez 40 false 67 133 117 75
T1('Ramirez','Altura') % Una fila y una columna
ans =
Altura
______
Ramirez 133
T1('Ramirez',["Altura", "Peso"]) %Una fila y dos columnas
ans =
Altura Peso
______ ____
Ramirez 133 67
% Forma 1 de los datos que tenemos agregamos el indice de masa corporal
T1.IMC=T1.Peso./(T1.Altura/100).^2
T1 =
Edad Fumador Peso Altura PresionSanguinea IMC
____ _______ ____ ______ ________________ ______
Moreno 38 true 71 176 124 93 22.921
Peniche 43 false 69 163 109 77 25.97
Medina 38 true 64 131 125 83 37.294
Ramirez 40 false 67 133 117 75 37.877
Aragon 49 true 64 119 122 80 45.195
T1.Indice=(1:5)'
T1 =
Edad Fumador Peso Altura PresionSanguinea IMC Indice
____ _______ ____ ______ ________________ ______ ______
Moreno 38 true 71 176 124 93 22.921 1
Peniche 43 false 69 163 109 77 25.97 2
Medina 38 true 64 131 125 83 37.294 3
Ramirez 40 false 67 133 117 75 37.877 4
Aragon 49 true 64 119 122 80 45.195 5
T1.Apellido=Apellidos
T1 =
Edad Fumador Peso Altura PresionSanguinea IMC Indice Apellido
____ _______ ____ ______ ________________ ______ ______ _________
Moreno 38 true 71 176 124 93 22.921 1 "Moreno"
Peniche 43 false 69 163 109 77 25.97 2 "Peniche"
Medina 38 true 64 131 125 83 37.294 3 "Medina"
Ramirez 40 false 67 133 117 75 37.877 4 "Ramirez"
Aragon 49 true 64 119 122 80 45.195 5 "Aragon"
T1(:,[1,6])=T1(:,[6,1])
T1 =
Edad Fumador Peso Altura PresionSanguinea IMC Indice Apellido
______ _______ ____ ______ ________________ ___ ______ _________
Moreno 22.921 true 71 176 124 93 38 1 "Moreno"
Peniche 25.97 false 69 163 109 77 43 2 "Peniche"
Medina 37.294 true 64 131 125 83 38 3 "Medina"
Ramirez 37.877 false 67 133 117 75 40 4 "Ramirez"
Aragon 45.195 true 64 119 122 80 49 5 "Aragon"
%Borrar una columna, es igual a como se realiza en una matriz
T1(:,6)=[] %Borrar por columnas
T1 =
Edad Fumador Peso Altura PresionSanguinea Indice Apellido
______ _______ ____ ______ ________________ ______ _________
Moreno 22.921 true 71 176 124 93 1 "Moreno"
Peniche 25.97 false 69 163 109 77 2 "Peniche"
Medina 37.294 true 64 131 125 83 3 "Medina"
Ramirez 37.877 false 67 133 117 75 4 "Ramirez"
Aragon 45.195 true 64 119 122 80 5 "Aragon"
T1(3,:)=[] %Borrar por filas
T1 =
Edad Fumador Peso Altura PresionSanguinea Indice Apellido
______ _______ ____ ______ ________________ ______ _________
Moreno 22.921 true 71 176 124 93 1 "Moreno"
Peniche 25.97 false 69 163 109 77 2 "Peniche"
Ramirez 37.877 false 67 133 117 75 4 "Ramirez"
Aragon 45.195 true 64 119 122 80 5 "Aragon"
%Agregar valores en las filas a la tabla
T1(5,:)={50, true, 64, 120, [122 82], 214, 6}
T1 =
Edad Fumador Peso Altura PresionSanguinea Indice Apellido
______ _______ ____ ______ ________________ ______ _________
Moreno 22.921 true 71 176 124 93 1 "Moreno"
Peniche 25.97 false 69 163 109 77 2 "Peniche"
Ramirez 37.877 false 67 133 117 75 4 "Ramirez"
Aragon 45.195 true 64 119 122 80 5 "Aragon"
Row5 50 true 64 120 122 82 214 "6"
T1.Properties.RowNames
ans =
{'Moreno' }
{'Peniche'}
{'Ramirez'}
{'Aragon' }
{'Row5' }
T1.Properties.RowNames{5,1}='Pacheco'
T1 =
Edad Fumador Peso Altura PresionSanguinea Indice Apellido
______ _______ ____ ______ ________________ ______ _________
Moreno 22.921 true 71 176 124 93 1 "Moreno"
Peniche 25.97 false 69 163 109 77 2 "Peniche"
Ramirez 37.877 false 67 133 117 75 4 "Ramirez"
Aragon 45.195 true 64 119 122 80 5 "Aragon"
Pacheco 50 true 64 120 122 82 214 "6"
T1.Properties.Description = 'Datos de pacientes incluyendo sus indice de masa corporal de acuerdo a su peso y estatura';
Guardar y cargar archivos en Matlab
Guardar archivos
Para guardar una matriz o un vector en Matlab se puede hacer de las siguientes maneras
Archivos de Matlab (Es necesario que todos los parámetros de las funciones esten entre comillas simples
%Para todo el wordspace (no es necesario especificar el .mat)
%Para alguna(s) Matriz(ces) del workespace en especifico
save('MatricesEspecificas','M1','M2','v1','v2')
%Archivos de Texto (es necesario el -ascci y especificar la extensión .txt en el nombre
save('Matriz.txt','M1','-ascii')
%Archivos csv (Nota que aqui el nombre de la variable es sin comillas simples)
xlswrite('Matrizcsv.csv',M1)
Warning: Unable to write to Excel format, attempting to write file to CSV format.
xlswrite('Vectorcsv.csv',v1)
Warning: Unable to write to Excel format, attempting to write file to CSV format.
%Guardamos la matriz formateado por delimitador de tabulador
dlmwrite('DP.txt',DP1,'delimiter','\t','precision',5)
Cargar o leer archivos
Para cargar archivos es necesario que la fuente tenga aspecto de matriz esto es que no tenga espacios en blanco o carácteres de cadena o especiales
%Para archivos de Matlab (Ya sea todo el workspace o algunos especificos). Ve que aqui se cargan con el mismo nombre de las variables que fueron creadas
%Para archivos de texto (se asigna a una variable para darle un nombre de lo contrario te pone el nombre del archivo)
Matrix=load('Matriz.txt','-ascii')
%Para archivos Excel (Donde el 1 representa la hoja de excel a leer)
%En datos se tendrán los valores cargados o leidos y en encabezado estarán las cadenas de texto que representan esos valores.
[Datos1, encabezado]=xlsread('Archivos/Libro1.xlsx',1)
Datos1 =
1 5 8 4
2 6 9 7
3 7 3 9
4 8 2 0
encabezado =
{'Temperatura'} {'Presion'} {'Salinidad'} {'Altura'}
Datos2=importdata('Matrizcsv.csv')
%Para archivos de texto o csv que tengan un encabezado en la(s) primera(s) lineas del archivo
Datos3=importdata('Matrizcsv.csv')
%Para archivos que tengan cadenas de texto en una o varias columnas
[Datos4, colTexto]=xlsread('Archivos/experimental.xlsx',1) % En formato excel
Datos4 =
1.0000 60.0000 NaN 1.0000 3.5449 105.2504
1.0000 60.0000 NaN 1.0000 3.7263 110.6363
1.0000 60.0000 NaN 1.0000 3.5609 105.7233
2.0000 60.0000 NaN 2.0000 3.6335 107.8810
2.0000 60.0000 NaN 2.0000 3.5943 106.7161
2.0000 60.0000 NaN 2.0000 3.7176 110.3780
3.0000 60.0000 NaN 3.0000 3.6342 107.8998
3.0000 60.0000 NaN 3.0000 3.5783 106.2411
3.0000 60.0000 NaN 3.0000 3.4410 102.1637
4.0000 60.0000 NaN 1.0000 3.5129 104.2983
colTexto =
{'Replica'} {'Temperatura'} {'Acido'} {'Concentracion'} {'PorcCarbono'} {'PR' }
{0×0 char } {0×0 char } {'HCL' } {0×0 char } {0×0 char } {0×0 char}
{0×0 char } {0×0 char } {'HCL' } {0×0 char } {0×0 char } {0×0 char}
{0×0 char } {0×0 char } {'HCL' } {0×0 char } {0×0 char } {0×0 char}
{0×0 char } {0×0 char } {'HCL' } {0×0 char } {0×0 char } {0×0 char}
{0×0 char } {0×0 char } {'HCL' } {0×0 char } {0×0 char } {0×0 char}
{0×0 char } {0×0 char } {'HCL' } {0×0 char } {0×0 char } {0×0 char}
{0×0 char } {0×0 char } {'HCL' } {0×0 char } {0×0 char } {0×0 char}
{0×0 char } {0×0 char } {'HCL' } {0×0 char } {0×0 char } {0×0 char}
{0×0 char } {0×0 char } {'HCL' } {0×0 char } {0×0 char } {0×0 char}
{0×0 char } {0×0 char } {'H3PO4'} {0×0 char } {0×0 char } {0×0 char}
{0×0 char } {0×0 char } {'H3PO4'} {0×0 char } {0×0 char } {0×0 char}
{0×0 char } {0×0 char } {'H3PO4'} {0×0 char } {0×0 char } {0×0 char}
{0×0 char } {0×0 char } {'H3PO4'} {0×0 char } {0×0 char } {0×0 char}
{0×0 char } {0×0 char } {'H3PO4'} {0×0 char } {0×0 char } {0×0 char}
{0×0 char } {0×0 char } {'H3PO4'} {0×0 char } {0×0 char } {0×0 char}
{0×0 char } {0×0 char } {'H3PO4'} {0×0 char } {0×0 char } {0×0 char}
{0×0 char } {0×0 char } {'H3PO4'} {0×0 char } {0×0 char } {0×0 char}
{0×0 char } {0×0 char } {'HCL' } {0×0 char } {0×0 char } {0×0 char}
{0×0 char } {0×0 char } {'HCL' } {0×0 char } {0×0 char } {0×0 char}
{0×0 char } {0×0 char } {'HCL' } {0×0 char } {0×0 char } {0×0 char}
{0×0 char } {0×0 char } {'HCL' } {0×0 char } {0×0 char } {0×0 char}
{0×0 char } {0×0 char } {'HCL' } {0×0 char } {0×0 char } {0×0 char}
{0×0 char } {0×0 char } {'HCL' } {0×0 char } {0×0 char } {0×0 char}
{0×0 char } {0×0 char } {'HCL' } {0×0 char } {0×0 char } {0×0 char}
{0×0 char } {0×0 char } {'HCL' } {0×0 char } {0×0 char } {0×0 char}
{0×0 char } {0×0 char } {'HCL' } {0×0 char } {0×0 char } {0×0 char}
{0×0 char } {0×0 char } {'H3PO4'} {0×0 char } {0×0 char } {0×0 char}
{0×0 char } {0×0 char } {'H3PO4'} {0×0 char } {0×0 char } {0×0 char}
{0×0 char } {0×0 char } {'H3PO4'} {0×0 char } {0×0 char } {0×0 char}
Datos4=importdata('Archivos/predict.txt') % En formato txt
Datos4 =
data: [78×5 double]
textdata: {79×6 cell}
%Guardamos la matriz formateado por delimitador de tabulador
dlmwrite('Prueba.txt',Datos1,'delimiter','\t','precision',5)
Gestión de archivos
Funciones que realicen el manejo y gestión de los archivos y directorios de Matlab
% Devuelve todos los directorios y archivos dentro del directorio activo
dir()
. CalculaArea.m Matrices.mat Prueba.txt
.. DP.txt MatricesEspecificas.mat SumaVec.m
.DS_Store Grafica1.png MatricesyVectores.m Vectorcsv.csv
Archivos GuiaMatlab.html Matriz.txt experimental.xlsx
BuscaCeros.m GuiaMatlab.mlx Matrizcsv.csv
BuscaMayor.m Libro1.xlsx Numero_Potencia.m
% Devuelve los nombres de los directorios y archivos dentro del directorio
ls()
Archivos Grafica1.png MatricesEspecificas.mat Prueba.txt
BuscaCeros.m GuiaMatlab.html MatricesyVectores.m SumaVec.m
BuscaMayor.m GuiaMatlab.mlx Matriz.txt Vectorcsv.csv
CalculaArea.m Libro1.xlsx Matrizcsv.csv experimental.xlsx
DP.txt Matrices.mat Numero_Potencia.m
% Muestra el archivo en la linea de comandos
type Matriz.txt
3.0000000e+00 9.0000000e+00
4.0000000e+00 7.0000000e+00
1.0000000e+00 0.0000000e+00
%Muestra el directorio activo
% Condicion que prueba si existe un directorio o archivo
%Acceder a la carpeta o ubicarme en ese directorio
% Retrocede una carpeta anterior
%Copia un archivo a un directorio
copyfile('Matriz.txt','Prueba')
delete('Prueba/Matriz.txt')
%Leer archivos en un directorio con dir
Archivos=dir()
Archivos =
name
folder
date
bytes
isdir
datenum
%Leer archivos en un directorio con ls
Archivos2=split(ls())
Archivos2 =
{'Datostxt.txt' }
{'experimental.txt' }
{'predict.txt' }
{'Libro1.xlsx' }
{'experimental.xlsx'}
{0×0 char }
Gráficas
Gráficas en 2D
%Un solo plot en un mismo figure
x=0:0.1:2*pi
x =
0 0.1000 0.2000 0.3000 0.4000 0.5000 0.6000 0.7000 0.8000 0.9000 1.0000 1.1000 1.2000 1.3000 1.4000 1.5000 1.6000 1.7000 1.8000 1.9000 2.0000 2.1000 2.2000 2.3000 2.4000 2.5000 2.6000 2.7000 2.8000 2.9000
Y=[cos(x);sin(2*x)]
Y =
1.0000 0.9950 0.9801 0.9553 0.9211 0.8776 0.8253 0.7648 0.6967 0.6216 0.5403 0.4536 0.3624 0.2675 0.1700 0.0707 -0.0292 -0.1288 -0.2272 -0.3233 -0.4161 -0.5048 -0.5885 -0.6663 -0.7374 -0.8011 -0.8569 -0.9041 -0.9422 -0.9710
0 0.1987 0.3894 0.5646 0.7174 0.8415 0.9320 0.9854 0.9996 0.9738 0.9093 0.8085 0.6755 0.5155 0.3350 0.1411 -0.0584 -0.2555 -0.4425 -0.6119 -0.7568 -0.8716 -0.9516 -0.9937 -0.9962 -0.9589 -0.8835 -0.7728 -0.6313 -0.4646
% Colocar los nombres de los ejes
title('Grafica de prueba')
%Agregando leyendas y texto
legend('\bfMarea','\itTemperatura','location','best')
text(1,3,'No existen valores para x=1')
%Poner texto con el mouse
%Multiples graficas en un solo figure
fplot('cos(x)',[0 4*pi])
Warning: fplot will not accept character vector or string inputs in a future release. Use fplot(@(x)cos(x)) instead.
fplot('abs(cos(x))',[0 4*pi])
Warning: fplot will not accept character vector or string inputs in a future release. Use fplot(@(x)abs(cos(x))) instead.
fplot('[sin(x),sin(2*x),sin(3*x)]',[0 2*pi])
Warning: fplot will not accept character vector or string inputs in a future release. Use fplot(@(x)[sin(x),sin(2.*x),sin(3.*x)]) instead.
fplot('[sin(x),cos(x)]',[0 2*pi])
Warning: fplot will not accept character vector or string inputs in a future release. Use fplot(@(x)[sin(x),cos(x)]) instead.
%Guardamos la grafica (checar save as)
hgexport(gcf, "Grafica1.png", hgexport('factorystyle'),'Format', 'png')
%Lectura de puntos con el raton
[x,y]=ginput(4)
x =
0.1932
0.6275
0.8371
0.3422
y =
0.6406
0.8387
0.4233
0.2668
Gráficas en 3D
%Graficas en 3D o superficies
t=-1:0.1:1
t =
-1.0000 -0.9000 -0.8000 -0.7000 -0.6000 -0.5000 -0.4000 -0.3000 -0.2000 -0.1000 0 0.1000 0.2000 0.3000 0.4000 0.5000 0.6000 0.7000 0.8000 0.9000 1.0000
[X,Y]=meshgrid(t,t)
X =
-1.0000 -0.9000 -0.8000 -0.7000 -0.6000 -0.5000 -0.4000 -0.3000 -0.2000 -0.1000 0 0.1000 0.2000 0.3000 0.4000 0.5000 0.6000 0.7000 0.8000 0.9000 1.0000
-1.0000 -0.9000 -0.8000 -0.7000 -0.6000 -0.5000 -0.4000 -0.3000 -0.2000 -0.1000 0 0.1000 0.2000 0.3000 0.4000 0.5000 0.6000 0.7000 0.8000 0.9000 1.0000
-1.0000 -0.9000 -0.8000 -0.7000 -0.6000 -0.5000 -0.4000 -0.3000 -0.2000 -0.1000 0 0.1000 0.2000 0.3000 0.4000 0.5000 0.6000 0.7000 0.8000 0.9000 1.0000
-1.0000 -0.9000 -0.8000 -0.7000 -0.6000 -0.5000 -0.4000 -0.3000 -0.2000 -0.1000 0 0.1000 0.2000 0.3000 0.4000 0.5000 0.6000 0.7000 0.8000 0.9000 1.0000
-1.0000 -0.9000 -0.8000 -0.7000 -0.6000 -0.5000 -0.4000 -0.3000 -0.2000 -0.1000 0 0.1000 0.2000 0.3000 0.4000 0.5000 0.6000 0.7000 0.8000 0.9000 1.0000
-1.0000 -0.9000 -0.8000 -0.7000 -0.6000 -0.5000 -0.4000 -0.3000 -0.2000 -0.1000 0 0.1000 0.2000 0.3000 0.4000 0.5000 0.6000 0.7000 0.8000 0.9000 1.0000
-1.0000 -0.9000 -0.8000 -0.7000 -0.6000 -0.5000 -0.4000 -0.3000 -0.2000 -0.1000 0 0.1000 0.2000 0.3000 0.4000 0.5000 0.6000 0.7000 0.8000 0.9000 1.0000
-1.0000 -0.9000 -0.8000 -0.7000 -0.6000 -0.5000 -0.4000 -0.3000 -0.2000 -0.1000 0 0.1000 0.2000 0.3000 0.4000 0.5000 0.6000 0.7000 0.8000 0.9000 1.0000
-1.0000 -0.9000 -0.8000 -0.7000 -0.6000 -0.5000 -0.4000 -0.3000 -0.2000 -0.1000 0 0.1000 0.2000 0.3000 0.4000 0.5000 0.6000 0.7000 0.8000 0.9000 1.0000
-1.0000 -0.9000 -0.8000 -0.7000 -0.6000 -0.5000 -0.4000 -0.3000 -0.2000 -0.1000 0 0.1000 0.2000 0.3000 0.4000 0.5000 0.6000 0.7000 0.8000 0.9000 1.0000
Y =
-1.0000 -1.0000 -1.0000 -1.0000 -1.0000 -1.0000 -1.0000 -1.0000 -1.0000 -1.0000 -1.0000 -1.0000 -1.0000 -1.0000 -1.0000 -1.0000 -1.0000 -1.0000 -1.0000 -1.0000 -1.0000
-0.9000 -0.9000 -0.9000 -0.9000 -0.9000 -0.9000 -0.9000 -0.9000 -0.9000 -0.9000 -0.9000 -0.9000 -0.9000 -0.9000 -0.9000 -0.9000 -0.9000 -0.9000 -0.9000 -0.9000 -0.9000
-0.8000 -0.8000 -0.8000 -0.8000 -0.8000 -0.8000 -0.8000 -0.8000 -0.8000 -0.8000 -0.8000 -0.8000 -0.8000 -0.8000 -0.8000 -0.8000 -0.8000 -0.8000 -0.8000 -0.8000 -0.8000
-0.7000 -0.7000 -0.7000 -0.7000 -0.7000 -0.7000 -0.7000 -0.7000 -0.7000 -0.7000 -0.7000 -0.7000 -0.7000 -0.7000 -0.7000 -0.7000 -0.7000 -0.7000 -0.7000 -0.7000 -0.7000
-0.6000 -0.6000 -0.6000 -0.6000 -0.6000 -0.6000 -0.6000 -0.6000 -0.6000 -0.6000 -0.6000 -0.6000 -0.6000 -0.6000 -0.6000 -0.6000 -0.6000 -0.6000 -0.6000 -0.6000 -0.6000
-0.5000 -0.5000 -0.5000 -0.5000 -0.5000 -0.5000 -0.5000 -0.5000 -0.5000 -0.5000 -0.5000 -0.5000 -0.5000 -0.5000 -0.5000 -0.5000 -0.5000 -0.5000 -0.5000 -0.5000 -0.5000
-0.4000 -0.4000 -0.4000 -0.4000 -0.4000 -0.4000 -0.4000 -0.4000 -0.4000 -0.4000 -0.4000 -0.4000 -0.4000 -0.4000 -0.4000 -0.4000 -0.4000 -0.4000 -0.4000 -0.4000 -0.4000
-0.3000 -0.3000 -0.3000 -0.3000 -0.3000 -0.3000 -0.3000 -0.3000 -0.3000 -0.3000 -0.3000 -0.3000 -0.3000 -0.3000 -0.3000 -0.3000 -0.3000 -0.3000 -0.3000 -0.3000 -0.3000
-0.2000 -0.2000 -0.2000 -0.2000 -0.2000 -0.2000 -0.2000 -0.2000 -0.2000 -0.2000 -0.2000 -0.2000 -0.2000 -0.2000 -0.2000 -0.2000 -0.2000 -0.2000 -0.2000 -0.2000 -0.2000
-0.1000 -0.1000 -0.1000 -0.1000 -0.1000 -0.1000 -0.1000 -0.1000 -0.1000 -0.1000 -0.1000 -0.1000 -0.1000 -0.1000 -0.1000 -0.1000 -0.1000 -0.1000 -0.1000 -0.1000 -0.1000
Z=X.^2-Y.^2
Z =
0 -0.1900 -0.3600 -0.5100 -0.6400 -0.7500 -0.8400 -0.9100 -0.9600 -0.9900 -1.0000 -0.9900 -0.9600 -0.9100 -0.8400 -0.7500 -0.6400 -0.5100 -0.3600 -0.1900 0
0.1900 0 -0.1700 -0.3200 -0.4500 -0.5600 -0.6500 -0.7200 -0.7700 -0.8000 -0.8100 -0.8000 -0.7700 -0.7200 -0.6500 -0.5600 -0.4500 -0.3200 -0.1700 0 0.1900
0.3600 0.1700 0 -0.1500 -0.2800 -0.3900 -0.4800 -0.5500 -0.6000 -0.6300 -0.6400 -0.6300 -0.6000 -0.5500 -0.4800 -0.3900 -0.2800 -0.1500 0 0.1700 0.3600
0.5100 0.3200 0.1500 0 -0.1300 -0.2400 -0.3300 -0.4000 -0.4500 -0.4800 -0.4900 -0.4800 -0.4500 -0.4000 -0.3300 -0.2400 -0.1300 0 0.1500 0.3200 0.5100
0.6400 0.4500 0.2800 0.1300 0 -0.1100 -0.2000 -0.2700 -0.3200 -0.3500 -0.3600 -0.3500 -0.3200 -0.2700 -0.2000 -0.1100 0 0.1300 0.2800 0.4500 0.6400
0.7500 0.5600 0.3900 0.2400 0.1100 0 -0.0900 -0.1600 -0.2100 -0.2400 -0.2500 -0.2400 -0.2100 -0.1600 -0.0900 0 0.1100 0.2400 0.3900 0.5600 0.7500
0.8400 0.6500 0.4800 0.3300 0.2000 0.0900 0 -0.0700 -0.1200 -0.1500 -0.1600 -0.1500 -0.1200 -0.0700 0 0.0900 0.2000 0.3300 0.4800 0.6500 0.8400
0.9100 0.7200 0.5500 0.4000 0.2700 0.1600 0.0700 0 -0.0500 -0.0800 -0.0900 -0.0800 -0.0500 0 0.0700 0.1600 0.2700 0.4000 0.5500 0.7200 0.9100
0.9600 0.7700 0.6000 0.4500 0.3200 0.2100 0.1200 0.0500 0 -0.0300 -0.0400 -0.0300 0 0.0500 0.1200 0.2100 0.3200 0.4500 0.6000 0.7700 0.9600
0.9900 0.8000 0.6300 0.4800 0.3500 0.2400 0.1500 0.0800 0.0300 0 -0.0100 0 0.0300 0.0800 0.1500 0.2400 0.3500 0.4800 0.6300 0.8000 0.9900
shading interp, colorbar;
Programación
Ejemplos prácticos para entender un poco sobre las sentencias de decisión, sentencias de repetición y las funciones.
%1) Hacer un programa que dado dos números determine cual es el mayor.
% Validar que los números sean numéricos
if (isnumeric(Num1) && isnumeric(Num2))
fprintf('Ambos son iguales\n');
fprintf('%d es el Mayor\n',Num1);
fprintf('%d es el Mayor\n',Num2);
error('Los números deben ser enteros')
%2) Hacer un programa que dado una cadena que indique la potencia y un número
% que realice dicha operación con el número dado.
Num=Numero_Potencia(4,'Cubo')
Num2=Numero_Potencia(-1,'Cuarta')
Val1=Numero_Potencia('x','Cuarta')
El primer parámetro debe ser un número
Val1 = 0
Val2=Numero_Potencia(4,5)
El segundo parámetro debe ser una cadena
Val2 = 0
%3) Hacer un programa que dado un vector, realice la suma de sus valores.
Resultado=sum(vector); %Forma óptima
suma=SumaVec([nan 4 6 nan 5 9 0 -1 nan])
%4) Hacer un programa que dado un vector determine si ese vector tiene por lo
%Forma de hacerlo llegando al ultimo elemento
vector=[2 9 7 1 7 8 9 1:5 nan];
disp('El vector tiene por lo menos un valor 0');
disp('El vector no tiene valores 0');
end
El vector no tiene valores 0
[Mensaje, Iteraciones]=BuscaCeros(vector)
Mensaje = 'El vector no tiene valores 0'
Iteraciones = 13
vector=[2 9 7 1 7 8 9 1:5 -1];
disp('El vector tiene valores cero');
disp('El vector no tiene ceros');
vector=[0 9 7 1 7 8 9 1:5 -1];
%% En forma de función se deja de tarea al estudiante
%%[bandera,iteraciones]=BuscaCerosBand(vector)
disp('El vector tiene valores cero');
disp('El vector no tiene ceros');
end
El vector tiene valores cero
%5) Hacer el mismo programa anterior pero utilizando el ciclo while y los
%comandos break y continue.
% Forma 1 utilizando el tamaño del vector como condicion de parada
vector=[0 9 7 1 7 8 9 1:5 -1];
disp('El vector tiene valores cero');
disp('El vector no tiene ceros');
end
El vector tiene valores cero
% Forma 2 cuando la condicion de parada sea encontrar el cero
vector=[0 9 7 1 7 8 9 1:5 -1];
while (valor~=0 && i<=tam)
disp('El vector tiene valores cero');
disp('El vector no tiene ceros');
end
El vector tiene valores cero
%5) Realizar las funciones de los ejercicios anteriores