mirror of
https://github.com/adambard/learnxinyminutes-docs.git
synced 2025-08-29 17:40:42 +02:00
Merge remote-tracking branch 'upstream/master'
This commit is contained in:
568
es-es/matlab-es.html.markdown
Normal file
568
es-es/matlab-es.html.markdown
Normal file
@@ -0,0 +1,568 @@
|
|||||||
|
---
|
||||||
|
language: Matlab
|
||||||
|
filename: learnmatlab-es.mat
|
||||||
|
contributors:
|
||||||
|
- ["mendozao", "http://github.com/mendozao"]
|
||||||
|
- ["jamesscottbrown", "http://jamesscottbrown.com"]
|
||||||
|
- ["Colton Kohnke", "http://github.com/voltnor"]
|
||||||
|
- ["Claudson Martins", "http://github.com/claudsonm"]
|
||||||
|
translators:
|
||||||
|
- ["Ivan Alburquerque", "https://github.com/AlburIvan"]
|
||||||
|
lang: es-es
|
||||||
|
---
|
||||||
|
|
||||||
|
MATLAB significa 'MATrix LABoratory'. Es un poderoso lenguaje de computación numérica comúnmente usado en ingeniería y matemáticas.
|
||||||
|
|
||||||
|
Si tiene algún comentario, no dude en ponerse en contacto el autor en
|
||||||
|
[@the_ozzinator](https://twitter.com/the_ozzinator), o
|
||||||
|
[osvaldo.t.mendoza@gmail.com](mailto:osvaldo.t.mendoza@gmail.com).
|
||||||
|
|
||||||
|
```matlab
|
||||||
|
%% Una sección de código comienza con dos símbolos de porcentaje. Los títulos de la sección van en la misma líneas.
|
||||||
|
% Los comentarios comienzan con un símbolo de porcentaje.
|
||||||
|
|
||||||
|
%{
|
||||||
|
Los Comentarios de multiples líneas se
|
||||||
|
ven
|
||||||
|
como
|
||||||
|
esto
|
||||||
|
%}
|
||||||
|
|
||||||
|
% Dos símbolos de porcentaje denotan el comienzo de una nueva sección de código.
|
||||||
|
% Secciones de código individuales pueden ser ejecutadas moviendo el cursor hacia la sección,
|
||||||
|
% seguida por un clic en el botón de “Ejecutar Sección”
|
||||||
|
% o usando Ctrl+Shift+Enter (Windows) o Cmd+Shift+Return (OS X)
|
||||||
|
|
||||||
|
%% Este es el comienzo de una sección de código
|
||||||
|
% Una forma de usar las secciones es separar un código de inicio costoso que no cambia, como cargar datos
|
||||||
|
load learnmatlab.mat y
|
||||||
|
|
||||||
|
%% Esta es otra sección de código
|
||||||
|
% Esta sección puede ser editada y ejecutada de manera repetida por sí misma,
|
||||||
|
% y es útil para la programación exploratoria y demostraciones.
|
||||||
|
A = A * 2;
|
||||||
|
plot(A);
|
||||||
|
|
||||||
|
%% Las secciones de código también son conocidas como celdas de código o modo celda (no ha de ser confundido con arreglo de celdas)
|
||||||
|
|
||||||
|
|
||||||
|
% Los comandos pueden abarcar varias líneas, usando '...'
|
||||||
|
a = 1 + 2 + ...
|
||||||
|
+ 4
|
||||||
|
|
||||||
|
% Los comandos se pueden pasar al sistema operativo
|
||||||
|
!ping google.com
|
||||||
|
|
||||||
|
who % Muestra todas las variables en la memoria
|
||||||
|
whos % Muestra todas las variables en la memoria con sus tipos
|
||||||
|
clear % Borra todas tus variables de la memoria
|
||||||
|
clear('A') % Borra una variable en particular
|
||||||
|
openvar('A') % Variable abierta en editor de variables
|
||||||
|
|
||||||
|
clc % Borra la escritura en la ventana de Comando
|
||||||
|
diary % Alterna la escritura del texto de la ventana de comandos al archivo
|
||||||
|
ctrl-c % Aborta el cálculo actual
|
||||||
|
|
||||||
|
edit('myfunction.m') % Abrir función/script en el editor
|
||||||
|
type('myfunction.m') % Imprime la fuente de la función/script en la ventana de comandos
|
||||||
|
|
||||||
|
profile on % Enciende el generador de perfilador de código
|
||||||
|
profile off % Apaga el generador de perfilador de código
|
||||||
|
profile viewer % Abre el perfilador de código
|
||||||
|
|
||||||
|
help command % Muestra la documentación del comando en la ventana de comandos
|
||||||
|
doc command % Muestra la documentación del comando en la ventana de Ayuda
|
||||||
|
lookfor command % Busca el comando en la primera línea comentada de todas las funciones
|
||||||
|
lookfor command -all % busca el comando en todas las funciones
|
||||||
|
|
||||||
|
|
||||||
|
% Formato de salida
|
||||||
|
format short % 4 decimales en un número flotante
|
||||||
|
format long % 15 decimales
|
||||||
|
format bank % solo dos dígitos después del punto decimal - para cálculos financieros
|
||||||
|
fprintf('texto') % imprime "texto" en la pantalla
|
||||||
|
disp('texto') % imprime "texto" en la pantalla
|
||||||
|
|
||||||
|
% Variables y expresiones
|
||||||
|
myVariable = 4 % Espacio de trabajo de aviso muestra la variable recién creada
|
||||||
|
myVariable = 4; % Punto y coma suprime la salida a la Ventana de Comando
|
||||||
|
4 + 6 % ans = 10
|
||||||
|
8 * myVariable % ans = 32
|
||||||
|
2 ^ 3 % ans = 8
|
||||||
|
a = 2; b = 3;
|
||||||
|
c = exp(a)*sin(pi/2) % c = 7.3891
|
||||||
|
|
||||||
|
% Llamar funciones se pueden realizar de dos maneras:
|
||||||
|
% Sintaxis de función estándar:
|
||||||
|
load('myFile.mat', 'y') % argumentos entre paréntesis, separados por comas
|
||||||
|
% Sintaxis del comando:
|
||||||
|
load myFile.mat y % sin paréntesis, y espacios en lugar de comas
|
||||||
|
% Tenga en cuenta la falta de comillas en el formulario de comandos:
|
||||||
|
% las entradas siempre se pasan como texto literal; no pueden pasar valores de variables.
|
||||||
|
% Además, no puede recibir salida:
|
||||||
|
[V,D] = eig(A); % esto no tiene equivalente en forma de comando
|
||||||
|
[~,D] = eig(A); % si solo se quiere D y no V
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
% Operadores lógicos
|
||||||
|
1 > 5 % ans = 0
|
||||||
|
10 >= 10 % ans = 1
|
||||||
|
3 ~= 4 % No es igual a -> ans = 1
|
||||||
|
3 == 3 % Es igual a -> ans = 1
|
||||||
|
3 > 1 && 4 > 1 % AND -> ans = 1
|
||||||
|
3 > 1 || 4 > 1 % OR -> ans = 1
|
||||||
|
~1 % NOT -> ans = 0
|
||||||
|
|
||||||
|
% Los operadores lógicos se pueden aplicar a matrices:
|
||||||
|
A > 5
|
||||||
|
% para cada elemento, si la condición es verdadera, ese elemento es 1 en la matriz devuelta
|
||||||
|
A( A > 5 )
|
||||||
|
% devuelve un vector que contiene los elementos en A para los que la condición es verdadera
|
||||||
|
|
||||||
|
% Cadenas
|
||||||
|
a = 'MiCadena'
|
||||||
|
length(a) % ans = 8
|
||||||
|
a(2) % ans = y
|
||||||
|
[a,a] % ans = MiCadenaMiCadena
|
||||||
|
|
||||||
|
|
||||||
|
% Celdas
|
||||||
|
a = {'uno', 'dos', 'tres'}
|
||||||
|
a(1) % ans = 'uno' - retorna una celda
|
||||||
|
char(a(1)) % ans = uno - retorna una cadena
|
||||||
|
|
||||||
|
% Estructuras
|
||||||
|
A.b = {'uno','dos'};
|
||||||
|
A.c = [1 2];
|
||||||
|
A.d.e = false;
|
||||||
|
|
||||||
|
% Vectores
|
||||||
|
x = [4 32 53 7 1]
|
||||||
|
x(2) % ans = 32, los índices en Matlab comienzan 1, no 0
|
||||||
|
x(2:3) % ans = 32 53
|
||||||
|
x(2:end) % ans = 32 53 7 1
|
||||||
|
|
||||||
|
x = [4; 32; 53; 7; 1] % Vector de columna
|
||||||
|
|
||||||
|
x = [1:10] % x = 1 2 3 4 5 6 7 8 9 10
|
||||||
|
x = [1:2:10] % Incrementa por 2, i.e. x = 1 3 5 7 9
|
||||||
|
|
||||||
|
% Matrices
|
||||||
|
A = [1 2 3; 4 5 6; 7 8 9]
|
||||||
|
% Las filas están separadas por un punto y coma; los elementos se separan con espacio o coma
|
||||||
|
% A =
|
||||||
|
|
||||||
|
% 1 2 3
|
||||||
|
% 4 5 6
|
||||||
|
% 7 8 9
|
||||||
|
|
||||||
|
A(2,3) % ans = 6, A(fila, columna)
|
||||||
|
A(6) % ans = 8
|
||||||
|
% (concatena implícitamente columnas en el vector, luego indexa en base a esto)
|
||||||
|
|
||||||
|
|
||||||
|
A(2,3) = 42 % Actualiza la fila 2 col 3 con 42
|
||||||
|
% A =
|
||||||
|
|
||||||
|
% 1 2 3
|
||||||
|
% 4 5 42
|
||||||
|
% 7 8 9
|
||||||
|
|
||||||
|
A(2:3,2:3) % Crea una nueva matriz a partir de la anterior
|
||||||
|
%ans =
|
||||||
|
|
||||||
|
% 5 42
|
||||||
|
% 8 9
|
||||||
|
|
||||||
|
A(:,1) % Todas las filas en la columna 1
|
||||||
|
%ans =
|
||||||
|
|
||||||
|
% 1
|
||||||
|
% 4
|
||||||
|
% 7
|
||||||
|
|
||||||
|
A(1,:) % Todas las columnas en la fila 1
|
||||||
|
%ans =
|
||||||
|
|
||||||
|
% 1 2 3
|
||||||
|
|
||||||
|
[A ; A] % Concatenación de matrices (verticalmente)
|
||||||
|
%ans =
|
||||||
|
|
||||||
|
% 1 2 3
|
||||||
|
% 4 5 42
|
||||||
|
% 7 8 9
|
||||||
|
% 1 2 3
|
||||||
|
% 4 5 42
|
||||||
|
% 7 8 9
|
||||||
|
|
||||||
|
% esto es lo mismo que
|
||||||
|
vertcat(A,A);
|
||||||
|
|
||||||
|
|
||||||
|
[A , A] % Concatenación de matrices (horizontalmente)
|
||||||
|
|
||||||
|
%ans =
|
||||||
|
|
||||||
|
% 1 2 3 1 2 3
|
||||||
|
% 4 5 42 4 5 42
|
||||||
|
% 7 8 9 7 8 9
|
||||||
|
|
||||||
|
% esto es lo mismo que
|
||||||
|
horzcat(A,A);
|
||||||
|
|
||||||
|
|
||||||
|
A(:, [3 1 2]) % Reorganiza las columnas de la matriz original
|
||||||
|
%ans =
|
||||||
|
|
||||||
|
% 3 1 2
|
||||||
|
% 42 4 5
|
||||||
|
% 9 7 8
|
||||||
|
|
||||||
|
size(A) % ans = 3 3
|
||||||
|
|
||||||
|
A(1, :) =[] % Elimina la primera fila de la matriz
|
||||||
|
A(:, 1) =[] % Elimina la primera columna de la matriz
|
||||||
|
|
||||||
|
transpose(A) % Transponer la matriz, que es lo mismo que:
|
||||||
|
A one
|
||||||
|
ctranspose(A) % Hermitian transpone la matriz
|
||||||
|
% (la transposición, seguida de la toma del conjugado complejo de cada elemento)
|
||||||
|
A' % Versión concisa de transposición compleja
|
||||||
|
A.' % Versión concisa de transposición (sin tomar complejo conjugado)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
% Elemento por elemento Aritmética vs. Matriz Aritmética
|
||||||
|
% Por sí solos, los operadores aritméticos actúan sobre matrices completas. Cuando preceden
|
||||||
|
% por un punto, actúan en cada elemento en su lugar. Por ejemplo:
|
||||||
|
A * B % Multiplicación de matrices
|
||||||
|
A .* B % Multiplica cada elemento en A por su elemento correspondiente en B
|
||||||
|
|
||||||
|
% Hay varios pares de funciones, donde una actúa sobre cada elemento y
|
||||||
|
% la otra (cuyo nombre termina en m) actúa sobre la matriz completa.
|
||||||
|
exp(A) % exponencializar cada elemento
|
||||||
|
expm(A) % calcular la matriz exponencial
|
||||||
|
sqrt(A) % tomar la raíz cuadrada de cada elemento
|
||||||
|
sqrtm(A) % encuentra la matriz cuyo cuadrado es A
|
||||||
|
|
||||||
|
|
||||||
|
% Trazando
|
||||||
|
x = 0:.10:2*pi; % Crea un vector que comienza en 0 y termina en 2 * pi con incrementos de .1
|
||||||
|
y = sin(x);
|
||||||
|
plot(x,y)
|
||||||
|
xlabel('x axis')
|
||||||
|
ylabel('y axis')
|
||||||
|
title('Plot of y = sin(x)')
|
||||||
|
axis([0 2*pi -1 1]) % x rango de 0 a 2 * pi, y rango de -1 a 1
|
||||||
|
|
||||||
|
plot(x,y1,'-',x,y2,'--',x,y3,':') % Para múltiples funciones en una parcela.
|
||||||
|
legend('Line 1 label', 'Line 2 label') % Etiquetar curvas con una leyenda.
|
||||||
|
|
||||||
|
% Método alternativo para trazar múltiples funciones en una parcela.
|
||||||
|
% mientras 'hold' está activado, los comandos se agregan al gráfico existente en lugar de reemplazarlo.
|
||||||
|
plot(x, y)
|
||||||
|
hold on
|
||||||
|
plot(x, z)
|
||||||
|
hold off
|
||||||
|
|
||||||
|
loglog(x, y) % Un diagrama de log-log.
|
||||||
|
semilogx(x, y) % Un diagrama con el eje x logarítmico.
|
||||||
|
semilogy(x, y) % Un diagrama con el eje y logarítmico.
|
||||||
|
|
||||||
|
fplot (@(x) x^2, [2,5]) % Un diagrama con el eje y logarítmico...
|
||||||
|
|
||||||
|
grid on % Muestra la cuadrícula; apague con 'grid off'.
|
||||||
|
axis square % Hace que la región actual de los ejes sea cuadrada.
|
||||||
|
axis equal % Establece la relación de aspecto para que las unidades de datos sean las mismas en todas las direcciones.
|
||||||
|
|
||||||
|
scatter(x, y); % Gráfico de dispersión
|
||||||
|
hist(x); % Histograma
|
||||||
|
stem(x); % Traza los valores como tallos, útiles para mostrar datos discretos.
|
||||||
|
bar(x); % Diagrama de barras
|
||||||
|
|
||||||
|
z = sin(x);
|
||||||
|
plot3(x,y,z); % Trazado de línea 3D.
|
||||||
|
|
||||||
|
pcolor(A) % Trazado de línea 3D...
|
||||||
|
contour(A) % Diagrama de contorno de la matriz.
|
||||||
|
mesh(A) % Traza una superficie de malla.
|
||||||
|
|
||||||
|
h = figure % Crea nuevo objeto figura, con el mango h.
|
||||||
|
figure(h) % Hace que la figura correspondiente al mango h la figura actual.
|
||||||
|
close(h) % Cierra la figura con mango h.
|
||||||
|
close all % Cierra todas las ventanas con figura abierta.
|
||||||
|
close % Cierra ventana de figura actual.
|
||||||
|
|
||||||
|
shg % Trae una ventana gráfica existente hacia adelante, o crea una nueva si es necesario.
|
||||||
|
clf clear % Borra la ventana de la figura actual y restablece la mayoría de las propiedades de la figura.
|
||||||
|
|
||||||
|
% Las propiedades se pueden establecer y cambiar a través de un identificador de figura.
|
||||||
|
% Puede guardar un identificador de una figura cuando la crea.
|
||||||
|
% La función get devuelve un handle a la figura actual
|
||||||
|
h = plot(x, y); % Puedes guardar un control de una figura cuando la creas
|
||||||
|
set(h, 'Color', 'r')
|
||||||
|
% 'y' yellow; 'm' magenta, 'c' cyan, 'r' red, 'g' green, 'b' blue, 'w' white, 'k' black
|
||||||
|
set(h, 'LineStyle', '--')
|
||||||
|
% '--' es línea continua, '---' discontinua, ':' punteada, '-.' dash-dot, 'none' es sin línea
|
||||||
|
get (h, 'LineStyle')
|
||||||
|
|
||||||
|
|
||||||
|
% La función gca devuelve un mango a los ejes para la figura actual
|
||||||
|
set(gca, 'XDir', 'reverse'); % invierte la dirección del eje x
|
||||||
|
|
||||||
|
% Para crear una figura que contenga varios ejes en posiciones de mosaico, use 'subplot'
|
||||||
|
subplot(2,3,1); % seleccione la primera posición en una grilla de subtramas de 2 por 3
|
||||||
|
plot(x1); title('First Plot') % traza algo en esta posición
|
||||||
|
subplot(2,3,2); % selecciona la segunda posición en la grilla
|
||||||
|
plot(x2); title('Second Plot') % trazar algo allí
|
||||||
|
|
||||||
|
|
||||||
|
% Para usar funciones o scripts, deben estar en su ruta o directorio actual
|
||||||
|
path % muestra la ruta actual
|
||||||
|
addpath /path/to/dir % agrega a la ruta
|
||||||
|
rmpath /path/to/dir % elimina de la ruta
|
||||||
|
cd /path/to/move/into % cambia de directorio
|
||||||
|
|
||||||
|
|
||||||
|
% Las variables se pueden guardar en archivos .mat
|
||||||
|
save('myFileName.mat') % Guarda las variables en su espacio de trabajo
|
||||||
|
load('myFileName.mat') % Carga las variables guardadas en espacio de trabajo
|
||||||
|
|
||||||
|
% M-file Scripts
|
||||||
|
% Un archivo de script es un archivo externo que contiene una secuencia de instrucciones.
|
||||||
|
% Permiten evitar escribir repetidamente el mismo código en la ventana de comandos
|
||||||
|
% Tienen extensiones .m
|
||||||
|
|
||||||
|
% M-file Functions
|
||||||
|
% Al igual que los scripts, y tienen la misma extensión .m
|
||||||
|
% Pero pueden aceptar argumentos de entrada y devolver una salida
|
||||||
|
% Además, tienen su propio espacio de trabajo (es decir, diferente alcance variable).
|
||||||
|
% El nombre de la función debe coincidir con el nombre del archivo (por lo tanto, guarde este ejemplo como double_input.m).
|
||||||
|
% 'help double_input.m' devuelve los comentarios en la línea que comienza la función
|
||||||
|
function output = double_input(x)
|
||||||
|
% double_input(x) devuelve el doble del valor de x
|
||||||
|
output = 2*x;
|
||||||
|
end
|
||||||
|
double_input(6) % ans = 12
|
||||||
|
|
||||||
|
|
||||||
|
% También puede tener subfunciones y funciones anidadas.
|
||||||
|
% Las subfunciones están en el mismo archivo que la función primaria, y solo pueden ser
|
||||||
|
% llamadas por funciones en el archivo. Las funciones anidadas se definen dentro de otra
|
||||||
|
% otras funciones y tienen acceso tanto a su área de trabajo como a su propio espacio de trabajo.
|
||||||
|
|
||||||
|
% Si desea crear una función sin crear un nuevo archivo, puede usar una
|
||||||
|
% función anónima. Útil cuando se define rápidamente una función para pasar a
|
||||||
|
% otra función (por ejemplo, trazar con fplot, evaluar una integral indefinida
|
||||||
|
% con quad, encuentra roots con fzero, o encuentra mínimo con fminsearch).
|
||||||
|
% Ejemplo que devuelve el cuadrado de su entrada, asignado al identificador sqr:
|
||||||
|
sqr = @(x) x.^2;
|
||||||
|
sqr(10) % ans = 100
|
||||||
|
doc function_handle % averiguar más
|
||||||
|
|
||||||
|
% User input
|
||||||
|
a = input('Ingrese el valor:')
|
||||||
|
|
||||||
|
% Detiene la ejecución del archivo y le da control al teclado: el usuario puede examinar
|
||||||
|
% o cambiar las variables. Escriba 'return' para continuar la ejecución, o 'dbquit' para salir del teclado
|
||||||
|
|
||||||
|
% Lectura de datos (también xlsread / importdata / imread para archivos de excel / CSV / image)
|
||||||
|
fopen(filename)
|
||||||
|
|
||||||
|
% Salida
|
||||||
|
disp(a) % Imprime el valor de la variable a
|
||||||
|
disp('Hola Mundo') % Imprime una cadena
|
||||||
|
fprintf % Imprime en la ventana de comandos con más control
|
||||||
|
|
||||||
|
% Declaraciones condicionales (los paréntesis son opcionales, pero buen estilo)
|
||||||
|
if (a > 15)
|
||||||
|
disp('Mayor que 15')
|
||||||
|
elseif (a == 23)
|
||||||
|
disp('a es 23')
|
||||||
|
else
|
||||||
|
disp('Ninguna condicion se ha cumplido')
|
||||||
|
end
|
||||||
|
|
||||||
|
% Bucles
|
||||||
|
% NB. haciendo un bucle sobre los elementos de un vector / matriz es lento!
|
||||||
|
% Siempre que sea posible, use funciones que actúen en todo el vector / matriz a la vez
|
||||||
|
for k = 1:5
|
||||||
|
disp(k)
|
||||||
|
end
|
||||||
|
|
||||||
|
k = 0;
|
||||||
|
while (k < 5)
|
||||||
|
k = k + 1;
|
||||||
|
end
|
||||||
|
|
||||||
|
% Ejecución del código de tiempo: 'toc' imprime el tiempo desde que se llamó 'tic'
|
||||||
|
tic
|
||||||
|
A = rand(1000);
|
||||||
|
A*A*A*A*A*A*A;
|
||||||
|
toc
|
||||||
|
|
||||||
|
% Conectarse a una base de datos MySQL
|
||||||
|
dbname = 'database_name';
|
||||||
|
username = 'root';
|
||||||
|
password = 'root';
|
||||||
|
driver = 'com.mysql.jdbc.Driver';
|
||||||
|
dburl = ['jdbc:mysql://localhost:8889/' dbname];
|
||||||
|
javaclasspath('mysql-connector-java-5.1.xx-bin.jar'); %xx depende de la versión, descarga disponible en http://dev.mysql.com/downloads/connector/j/
|
||||||
|
conn = database(dbname, username, password, driver, dburl);
|
||||||
|
sql = ['SELECT * from table_name where id = 22'] % Ejemplo de instrucción sql
|
||||||
|
a = fetch(conn, sql) %a contendrá sus datos
|
||||||
|
|
||||||
|
|
||||||
|
% Funciones matemáticas comunes
|
||||||
|
sin(x)
|
||||||
|
cos(x)
|
||||||
|
tan(x)
|
||||||
|
asin(x)
|
||||||
|
acos(x)
|
||||||
|
atan(x)
|
||||||
|
exp(x)
|
||||||
|
sqrt(x)
|
||||||
|
log(x)
|
||||||
|
log10(x)
|
||||||
|
abs(x) % Si x es complejo, devuelve la magnitud
|
||||||
|
min(x)
|
||||||
|
max(x)
|
||||||
|
ceil(x)
|
||||||
|
floor(x)
|
||||||
|
round(x)
|
||||||
|
rem(x)
|
||||||
|
rand % Números pseudoaleatorios distribuidos uniformemente
|
||||||
|
randi % Enteros pseudoaleatorios distribuidos uniformemente
|
||||||
|
randn % Números pseudoaleatorios distribuidos normalmente
|
||||||
|
|
||||||
|
% Operaciones matemáticas complejas
|
||||||
|
abs(x) % Magnitud de la variable compleja x
|
||||||
|
phase(x) % Fase (o ángulo) de la variable compleja x
|
||||||
|
real(x) % Retorna la parte real de x (es decir, devuelve a si x = a + jb)
|
||||||
|
imag(x) % Retorna la parte imaginaria de x (es decir, devuelve b si x = a + jb)
|
||||||
|
conj(x) % Retorna el complejo conjugado
|
||||||
|
|
||||||
|
|
||||||
|
% Constantes comunes
|
||||||
|
pi
|
||||||
|
NaN
|
||||||
|
inf
|
||||||
|
|
||||||
|
% Resolviendo ecuaciones matriciales (si no hay solución, devuelve una solución de mínimos cuadrados)
|
||||||
|
%Los operadores \ y / son equivalentes a las funciones mldivide y mrdivide
|
||||||
|
x=A\b % Resuelve Ax = b. Más rápido y más numéricamente preciso que usar inv (A) * b.
|
||||||
|
x=b/A % Resuelve xA = b
|
||||||
|
|
||||||
|
inv(A) % calcular la matriz inversa
|
||||||
|
pinv(A) % calcular el pseudo-inverso
|
||||||
|
|
||||||
|
% Funciones de matriz comunes
|
||||||
|
zeros(m,n) % m x n matriz de 0
|
||||||
|
ones(m,n) % m x n matriz de 1
|
||||||
|
diag(A) % Extrae los elementos diagonales de una matriz A
|
||||||
|
diag(x) % Construya una matriz con elementos diagonales enumerados en x, y ceros en otra parte
|
||||||
|
eye(m,n) % Matriz de identidad
|
||||||
|
linspace(x1, x2, n) % Devuelve n puntos equiespaciados, con min x1 y max x2
|
||||||
|
inv(A) % Inverso de la matriz A
|
||||||
|
det(A) % Determinante de A
|
||||||
|
eig(A) % Valores propios y vectores propios de A
|
||||||
|
trace(A) % Traza de la matriz: equivalente a sum(diag(A))
|
||||||
|
isempty(A) % Determina si la matriz está vacía
|
||||||
|
all(A) % Determina si todos los elementos son distintos de cero o verdaderos
|
||||||
|
any(A) % Determina si alguno de los elementos es distinto de cero o verdadero
|
||||||
|
isequal(A, B) % Determina la igualdad de dos matrices
|
||||||
|
numel(A) % Cantidad de elementos en matriz
|
||||||
|
triu(x) % Devuelve la parte triangular superior de x
|
||||||
|
tril(x) % Devuelve la parte triangular inferior de x
|
||||||
|
cross(A,B) % Devuelve el producto cruzado de los vectores A y B
|
||||||
|
dot(A,B) % Devuelve un producto escalar de dos vectores (debe tener la misma longitud)
|
||||||
|
transpose(A) % Devuelve la transposición de A
|
||||||
|
fliplr(A) % Voltea la matriz de izquierda a derecha
|
||||||
|
flipud(A) % Voltea la matriz de arriba hacia abajo
|
||||||
|
|
||||||
|
% Factorizaciones de matrices
|
||||||
|
[L, U, P] = lu(A) % Descomposición LU: PA = LU, L es triangular inferior, U es triangular superior, P es matriz de permutación
|
||||||
|
[P, D] = eig(A) % eigen-decomposition: AP = PD, las columnas de P son autovectores y las diagonales de D'son valores propios
|
||||||
|
[U,S,V] = svd(X) % SVD: XV = US, U y V son matrices unitarias, S tiene elementos diagonales no negativos en orden decreciente
|
||||||
|
|
||||||
|
% Funciones comunes de vectores
|
||||||
|
max % componente más grande
|
||||||
|
min % componente más pequeño
|
||||||
|
length % longitud de un vector
|
||||||
|
sort % ordenar en orden ascendente
|
||||||
|
sum % suma de elementos
|
||||||
|
prod % producto de elementos
|
||||||
|
mode % valor modal
|
||||||
|
median % valor mediano
|
||||||
|
mean % valor medio
|
||||||
|
std % desviación estándar
|
||||||
|
perms(x) % enumera todas las permutaciones de elementos de x
|
||||||
|
find(x) % Encuentra todos los elementos distintos de cero de x y devuelve sus índices, puede usar operadores de comparación,
|
||||||
|
% i.e. find( x == 3 ) devuelve índices de elementos que son iguales a 3
|
||||||
|
% i.e. find( x >= 3 ) devuelve índices de elementos mayores o iguales a 3
|
||||||
|
|
||||||
|
|
||||||
|
% Clases
|
||||||
|
% Matlab puede soportar programación orientada a objetos.
|
||||||
|
% Las clases deben colocarse en un archivo del nombre de la clase con la extensión .m.
|
||||||
|
% Para comenzar, creamos una clase simple para almacenar puntos de referencia de GPS.
|
||||||
|
% Comience WaypointClass.m
|
||||||
|
classdef WaypointClass % El nombre de la clase.
|
||||||
|
properties % Las propiedades de la clase se comportan como Estructuras
|
||||||
|
latitude
|
||||||
|
longitude
|
||||||
|
end
|
||||||
|
methods
|
||||||
|
% Este método que tiene el mismo nombre de la clase es el constructor.
|
||||||
|
function obj = WaypointClass(lat, lon)
|
||||||
|
obj.latitude = lat;
|
||||||
|
obj.longitude = lon;
|
||||||
|
end
|
||||||
|
|
||||||
|
% Otras funciones que usan el objeto Waypoint
|
||||||
|
function r = multiplyLatBy(obj, n)
|
||||||
|
r = n*[obj.latitude];
|
||||||
|
end
|
||||||
|
|
||||||
|
% Si queremos agregar dos objetos Waypoint juntos sin llamar
|
||||||
|
% a una función especial, podemos sobrecargar la aritmética de Matlab así:
|
||||||
|
function r = plus(o1,o2)
|
||||||
|
r = WaypointClass([o1.latitude] +[o2.latitude], ...
|
||||||
|
[o1.longitude]+[o2.longitude]);
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
% Fin WaypointClass.m
|
||||||
|
|
||||||
|
% Podemos crear un objeto de la clase usando el constructor
|
||||||
|
a = WaypointClass(45.0, 45.0)
|
||||||
|
|
||||||
|
% Las propiedades de clase se comportan exactamente como estructuras de Matlab.
|
||||||
|
a.latitude = 70.0
|
||||||
|
a.longitude = 25.0
|
||||||
|
|
||||||
|
% Los métodos se pueden llamar de la misma manera que las funciones
|
||||||
|
ans = multiplyLatBy(a,3)
|
||||||
|
|
||||||
|
% El método también se puede llamar usando notación de puntos. En este caso, el objeto
|
||||||
|
% no necesita ser pasado al método.
|
||||||
|
ans = a.multiplyLatBy(a,1/3)
|
||||||
|
|
||||||
|
% Las funciones de Matlab pueden sobrecargarse para manejar objetos.
|
||||||
|
% En el método anterior, hemos sobrecargado cómo maneja Matlab
|
||||||
|
% la adición de dos objetos Waypoint.
|
||||||
|
b = WaypointClass(15.0, 32.0)
|
||||||
|
c = a + b
|
||||||
|
|
||||||
|
```
|
||||||
|
|
||||||
|
## Más sobre Matlab
|
||||||
|
|
||||||
|
* [The official website (EN)](http://www.mathworks.com/products/matlab/)
|
||||||
|
* [The official MATLAB Answers forum (EN)](http://www.mathworks.com/matlabcentral/answers/)
|
||||||
|
* [Loren on the Art of MATLAB (EN)](http://blogs.mathworks.com/loren/)
|
||||||
|
* [Cleve's Corner (EN)](http://blogs.mathworks.com/cleve/)
|
||||||
|
|
@@ -7,25 +7,41 @@ translators:
|
|||||||
- ["Robert Steed", "https://github.com/robochat"]
|
- ["Robert Steed", "https://github.com/robochat"]
|
||||||
---
|
---
|
||||||
|
|
||||||
HTML stands for HyperText Markup Language.
|
HTML stands for HyperText Markup Language.
|
||||||
It is a language which allows us to write pages for the world wide web.
|
|
||||||
It is a markup language, it enables us to write webpages using code to indicate how text and data should be displayed.
|
|
||||||
In fact, html files are simple text files.
|
|
||||||
What is this markup? It is a method of organising the page's data by surrounding it with opening tags and closing tags.
|
|
||||||
This markup serves to give significance to the text that it encloses.
|
|
||||||
Like other computer languages, HTML has many versions. Here we will talk about HTML5.
|
|
||||||
|
|
||||||
**NOTE :** You can test the different tags and elements as you progress through the tutorial on a site like [codepen](http://codepen.io/pen/) in order to see their effects, understand how they work and familiarise yourself with the language.
|
It is a language which allows us to write pages for the world wide web.
|
||||||
This article is concerned principally with HTML syntax and some useful tips.
|
It is a markup language, it enables us to write webpages using code to indicate
|
||||||
|
how text and data should be displayed. In fact, html files are simple text
|
||||||
|
files.
|
||||||
|
|
||||||
|
What is this markup? It is a method of organising the page's data by
|
||||||
|
surrounding it with opening tags and closing tags. This markup serves to give
|
||||||
|
significance to the text that it encloses. Like other computer languages, HTML
|
||||||
|
has many versions. Here we will talk about HTML5.
|
||||||
|
|
||||||
|
**NOTE :** You can test the different tags and elements as you progress through
|
||||||
|
the tutorial on a site like [codepen](http://codepen.io/pen/) in order to see
|
||||||
|
their effects, understand how they work and familiarise yourself with the
|
||||||
|
language. This article is concerned principally with HTML syntax and some
|
||||||
|
useful tips.
|
||||||
|
|
||||||
|
|
||||||
```html
|
```html
|
||||||
<!-- Comments are enclosed like this line! -->
|
<!-- Comments are enclosed like this line! -->
|
||||||
|
|
||||||
|
<!--
|
||||||
|
Comments
|
||||||
|
can
|
||||||
|
span
|
||||||
|
multiple
|
||||||
|
lines!
|
||||||
|
-->
|
||||||
|
|
||||||
<!-- #################### The Tags #################### -->
|
<!-- #################### The Tags #################### -->
|
||||||
|
|
||||||
<!-- Here is an example HTML file that we are going to analyse. -->
|
<!-- Here is an example HTML file that we are going to analyse. -->
|
||||||
|
|
||||||
|
|
||||||
<!doctype html>
|
<!doctype html>
|
||||||
<html>
|
<html>
|
||||||
<head>
|
<head>
|
||||||
@@ -33,7 +49,9 @@ This article is concerned principally with HTML syntax and some useful tips.
|
|||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
<h1>Hello, world!</h1>
|
<h1>Hello, world!</h1>
|
||||||
<a href = "http://codepen.io/anon/pen/xwjLbZ">Come look at what this shows</a>
|
<a href="http://codepen.io/anon/pen/xwjLbZ">
|
||||||
|
Come look at what this shows
|
||||||
|
</a>
|
||||||
<p>This is a paragraph.</p>
|
<p>This is a paragraph.</p>
|
||||||
<p>This is another paragraph.</p>
|
<p>This is another paragraph.</p>
|
||||||
<ul>
|
<ul>
|
||||||
@@ -44,7 +62,9 @@ This article is concerned principally with HTML syntax and some useful tips.
|
|||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
|
||||||
<!-- An HTML file always starts by indicating to the browser that the page is HTML. -->
|
<!--
|
||||||
|
An HTML file always starts by indicating to the browser that the page is HTML.
|
||||||
|
-->
|
||||||
<!doctype html>
|
<!doctype html>
|
||||||
|
|
||||||
<!-- After this, it starts by opening an <html> tag. -->
|
<!-- After this, it starts by opening an <html> tag. -->
|
||||||
@@ -58,10 +78,17 @@ This article is concerned principally with HTML syntax and some useful tips.
|
|||||||
<!-- Inside (between the opening and closing tags <html></html>), we find: -->
|
<!-- Inside (between the opening and closing tags <html></html>), we find: -->
|
||||||
|
|
||||||
<!-- A header defined by <head> (it must be closed with </head>). -->
|
<!-- A header defined by <head> (it must be closed with </head>). -->
|
||||||
<!-- The header contains some description and additional information which are not displayed; this is metadata. -->
|
<!--
|
||||||
|
The header contains some description and additional information which are not
|
||||||
|
displayed; this is metadata.
|
||||||
|
-->
|
||||||
|
|
||||||
<head>
|
<head>
|
||||||
<title>My Site</title><!-- The tag <title> indicates to the browser the title to show in browser window's title bar and tab name. -->
|
<!--
|
||||||
|
The tag <title> indicates to the browser the title to show in browser
|
||||||
|
window's title bar and tab name.
|
||||||
|
-->
|
||||||
|
<title>My Site</title>
|
||||||
</head>
|
</head>
|
||||||
|
|
||||||
<!-- After the <head> section, we find the tag - <body> -->
|
<!-- After the <head> section, we find the tag - <body> -->
|
||||||
@@ -69,13 +96,28 @@ This article is concerned principally with HTML syntax and some useful tips.
|
|||||||
<!-- We must fill the body with the content to be displayed. -->
|
<!-- We must fill the body with the content to be displayed. -->
|
||||||
|
|
||||||
<body>
|
<body>
|
||||||
<h1>Hello, world!</h1> <!-- The h1 tag creates a title. -->
|
<!-- The h1 tag creates a title. -->
|
||||||
<!-- There are also subtitles to <h1> from the most important (h2) to the most precise (h6). -->
|
<h1>Hello, world!</h1>
|
||||||
<a href = "http://codepen.io/anon/pen/xwjLbZ">Come look at what this shows</a> <!-- a hyperlink to the url given by the attribute href="" -->
|
<!--
|
||||||
<p>This is a paragraph.</p> <!-- The tag <p> lets us include text in the html page. -->
|
There are also subtitles to <h1> from the most important (h2) to the most
|
||||||
|
precise (h6).
|
||||||
|
-->
|
||||||
|
|
||||||
|
<!-- a hyperlink to the url given by the attribute href="" -->
|
||||||
|
<a href="http://codepen.io/anon/pen/xwjLbZ">
|
||||||
|
Come look at what this shows
|
||||||
|
</a>
|
||||||
|
|
||||||
|
<!-- The tag <p> lets us include text in the html page. -->
|
||||||
|
<p>This is a paragraph.</p>
|
||||||
<p>This is another paragraph.</p>
|
<p>This is another paragraph.</p>
|
||||||
<ul> <!-- The tag <ul> creates a bullet list. -->
|
|
||||||
<!-- To have a numbered list instead we would use <ol> giving 1. for the first element, 2. for the second, etc. -->
|
<!-- The tag <ul> creates a bullet list. -->
|
||||||
|
<!--
|
||||||
|
To have a numbered list instead we would use <ol> giving 1. for the first
|
||||||
|
element, 2. for the second, etc.
|
||||||
|
-->
|
||||||
|
<ul>
|
||||||
<li>This is an item in a non-enumerated list (bullet list)</li>
|
<li>This is an item in a non-enumerated list (bullet list)</li>
|
||||||
<li>This is another item</li>
|
<li>This is another item</li>
|
||||||
<li>And this is the last item on the list</li>
|
<li>And this is the last item on the list</li>
|
||||||
@@ -86,21 +128,33 @@ This article is concerned principally with HTML syntax and some useful tips.
|
|||||||
|
|
||||||
<!-- But it is possible to add many additional types of HTML tags. -->
|
<!-- But it is possible to add many additional types of HTML tags. -->
|
||||||
|
|
||||||
<!-- To insert an image. -->
|
<!-- The <img /> tag is used to insert an image. -->
|
||||||
<img src="http://i.imgur.com/XWG0O.gif"/> <!-- The source of the image is indicated using the attribute src="" -->
|
<!--
|
||||||
<!-- The source can be an URL or even path to a file on your computer. -->
|
The source of the image is indicated using the attribute src=""
|
||||||
|
The source can be an URL or even path to a file on your computer.
|
||||||
|
-->
|
||||||
|
<img src="http://i.imgur.com/XWG0O.gif"/>
|
||||||
|
|
||||||
<!-- It is also possible to create a table. -->
|
<!-- It is also possible to create a table. -->
|
||||||
|
|
||||||
<table> <!-- We open a <table> element. -->
|
<!-- We open a <table> element. -->
|
||||||
<tr> <!-- <tr> allows us to create a row. -->
|
<table>
|
||||||
<th>First Header</th> <!-- <th> allows us to give a title to a table column. -->
|
|
||||||
|
<!-- <tr> allows us to create a row. -->
|
||||||
|
<tr>
|
||||||
|
|
||||||
|
<!-- <th> allows us to give a title to a table column. -->
|
||||||
|
<th>First Header</th>
|
||||||
<th>Second Header</th>
|
<th>Second Header</th>
|
||||||
</tr>
|
</tr>
|
||||||
|
|
||||||
<tr>
|
<tr>
|
||||||
<td>first row, first column</td> <!-- <td> allows us to create a table cell. -->
|
|
||||||
|
<!-- <td> allows us to create a table cell. -->
|
||||||
|
<td>first row, first column</td>
|
||||||
<td>first row, second column</td>
|
<td>first row, second column</td>
|
||||||
</tr>
|
</tr>
|
||||||
|
|
||||||
<tr>
|
<tr>
|
||||||
<td>second row, first column</td>
|
<td>second row, first column</td>
|
||||||
<td>second row, second column</td>
|
<td>second row, second column</td>
|
||||||
@@ -111,9 +165,10 @@ This article is concerned principally with HTML syntax and some useful tips.
|
|||||||
|
|
||||||
## Usage
|
## Usage
|
||||||
|
|
||||||
HTML is written in files ending with `.html` or `.htm`. The mime type is `text/html`.
|
HTML is written in files ending with `.html` or `.htm`. The mime type is
|
||||||
|
`text/html`.
|
||||||
|
|
||||||
## To Learn More
|
## To Learn More
|
||||||
|
|
||||||
* [wikipedia](https://en.wikipedia.org/wiki/HTML)
|
* [wikipedia](https://en.wikipedia.org/wiki/HTML)
|
||||||
* [HTML tutorial](https://developer.mozilla.org/en-US/docs/Web/HTML)
|
* [HTML tutorial](https://developer.mozilla.org/en-US/docs/Web/HTML)
|
||||||
|
@@ -4,6 +4,7 @@ filename: learnSolidity.sol
|
|||||||
contributors:
|
contributors:
|
||||||
- ["Nemil Dalal", "https://www.nemil.com"]
|
- ["Nemil Dalal", "https://www.nemil.com"]
|
||||||
- ["Joseph Chow", ""]
|
- ["Joseph Chow", ""]
|
||||||
|
- ["Bhoomtawath Plinsut", "https://github.com/varshard"]
|
||||||
---
|
---
|
||||||
|
|
||||||
Solidity lets you program on [Ethereum](https://www.ethereum.org/), a
|
Solidity lets you program on [Ethereum](https://www.ethereum.org/), a
|
||||||
@@ -109,10 +110,9 @@ contract SimpleBank { // CapWords
|
|||||||
|
|
||||||
/// @notice Get balance
|
/// @notice Get balance
|
||||||
/// @return The balance of the user
|
/// @return The balance of the user
|
||||||
// 'constant' prevents function from editing state variables;
|
// 'view' (ex: constant) prevents function from editing state variables;
|
||||||
// allows function to run locally/off blockchain
|
// allows function to run locally/off blockchain
|
||||||
// NOTE: 'constant' on functions is an alias to 'view', but this is deprecated and is planned to be dropped in version 0.5.0.
|
function balance() view public returns (uint) {
|
||||||
function balance() constant public returns (uint) {
|
|
||||||
return balances[msg.sender];
|
return balances[msg.sender];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -342,25 +342,26 @@ function increment(uint x, uint y) returns (uint x, uint y) {
|
|||||||
// Call previous functon
|
// Call previous functon
|
||||||
uint (a,b) = increment(1,1);
|
uint (a,b) = increment(1,1);
|
||||||
|
|
||||||
// 'constant' (alias for 'view')
|
// 'view' (alias for 'constant')
|
||||||
// indicates that function does not/cannot change persistent vars
|
// indicates that function does not/cannot change persistent vars
|
||||||
// Constant function execute locally, not on blockchain
|
// View function execute locally, not on blockchain
|
||||||
|
// Noted: constant keyword will soon be deprecated.
|
||||||
uint y = 1;
|
uint y = 1;
|
||||||
|
|
||||||
function increment(uint x) constant returns (uint x) {
|
function increment(uint x) view returns (uint x) {
|
||||||
x += 1;
|
x += 1;
|
||||||
y += 1; // this line would fail
|
y += 1; // this line would fail
|
||||||
// y is a state variable, and can't be changed in a constant function
|
// y is a state variable, and can't be changed in a view function
|
||||||
}
|
}
|
||||||
|
|
||||||
// 'pure' is more strict than 'constant', and does not
|
// 'pure' is more strict than 'view' or 'constant', and does not
|
||||||
// even allow reading of state vars
|
// even allow reading of state vars
|
||||||
// The exact rules are more complicated, so see more about
|
// The exact rules are more complicated, so see more about
|
||||||
// constant/pure:
|
// view/pure:
|
||||||
// http://solidity.readthedocs.io/en/develop/contracts.html#view-functions
|
// http://solidity.readthedocs.io/en/develop/contracts.html#view-functions
|
||||||
|
|
||||||
// 'Function Visibility specifiers'
|
// 'Function Visibility specifiers'
|
||||||
// These can be placed where 'constant' is, including:
|
// These can be placed where 'view' is, including:
|
||||||
// public - visible externally and internally (default for function)
|
// public - visible externally and internally (default for function)
|
||||||
// external - only visible externally (including a call made with this.)
|
// external - only visible externally (including a call made with this.)
|
||||||
// private - only visible in the current contract
|
// private - only visible in the current contract
|
||||||
|
@@ -78,6 +78,7 @@ combinations called 'Prefix' keys.
|
|||||||
p # Change to the previous window
|
p # Change to the previous window
|
||||||
{ # Swap the current pane with the previous pane
|
{ # Swap the current pane with the previous pane
|
||||||
} # Swap the current pane with the next pane
|
} # Swap the current pane with the next pane
|
||||||
|
] # Enter Copy Mode to copy text or view history.
|
||||||
|
|
||||||
s # Select a new session for the attached client
|
s # Select a new session for the attached client
|
||||||
interactively
|
interactively
|
||||||
|
Reference in New Issue
Block a user