← MATLAB EspañolChapter 02 of 13

Variables y Tipos de Datos

## Objetivos de Aprendizaje - Comprender los tipos de datos de MATLAB - Crear y manipular variables - Trabajar con arreglos y celdas - Usar estructuras para datos complejos ## Descripcion General de Tipos de Datos ### Tipos de Datos Basicos | Tipo | Ejemplo | Descripcion | |------|---------|-------------| | double | `3.14` | Punto flotante de doble precision | | single | `3.14` | Punto flotante de precision simple | | int8 | `42` | Entero de 8 bits con signo | | int16 | `42` | Entero de 16 bits con signo | | int32 | `42` | Entero de 32 bits con signo | | int64 | `42` | Entero de 64 bits con signo | | uint8 | `42` | Entero de 8 bits sin signo | | char | `'A'` | Caracter | | logical | `true` | Booleano (verdadero/falso) | | string | `"hola"` | Cadena de texto (R2016b+) | ## Tipos Numericos ### Punto Flotante ```matlab % Doble precision (predeterminado) x = 3.14159; class(x) % Devuelve 'double' % Precision simple y = single(3.14159); class(y) % Devuelve 'single' % Comparacion de precision eps('double') % ~2.22e-16 eps('single') % ~1.19e-7 ``` ### Tipos Enteros ```matlab % Enteros con signo a = int8(127); % Rango: -128 a 127 b = int16(32767); % Rango: -32768 a 32767 c = int32(2^31-1); d = int64(2^63-1); % Enteros sin signo e = uint8(255); % Rango: 0 a 255 f = uint16(65535); g = uint32(2^32-1); h = uint64(2^64-1); ``` ### Verificando Tipos ```matlab x = 42; whos x % Muestra tamano, bytes, clase isa(x, 'double') % Devuelve true isa(x, 'integer') % Devuelve false ``` ## Variables ### Asignacion de Variables ```matlab x = 10; % Asignacion simple y = x * 2; % Asignacion con calculo z = (1:5); % Asignacion con arreglo ``` ### Informacion de Variables ```matlab a = 5; b = 'hola'; whos % Listar todas las variables clear a % Eliminar variable especifica clear all % Eliminar todas las variables ``` ## Arreglos ### Creando Arreglos ```matlab % Vector fila row = [1, 2, 3, 4, 5] % Vector columna col = [1; 2; 3; 4; 5] % Arreglo 2D A = [1, 2, 3; 4, 5, 6; 7, 8, 9] % Usando el operador dos puntos v = 1:2:10 % 1, 3, 5, 7, 9 (inicio:paso:fin) w = 0:0.1:1 % 0, 0.1, 0.2, ... 1.0 ``` ### Indexacion de Arreglos ```matlab A = [1, 2, 3; 4, 5, 6; 7, 8, 9] A(1, 1) % Primer elemento: 1 A(3, 3) % Ultimo elemento: 9 A(1, :) % Primera fila: [1, 2, 3] A(:, 2) % Segunda columna: [2; 5; 8] A(1:2, 1:2) % Submatriz 2x2 superior izquierda ``` ### Tamanio de Arreglos ```matlab A = [1, 2, 3; 4, 5, 6]; size(A) % [2, 3] - filas, columnas length(A) % 3 - dimension mas grande numel(A) % 6 - numero total de elementos ndims(A) % 2 - numero de dimensiones ``` ## Arreglos de Celdas Los arreglos de celdas pueden contener diferentes tipos de datos en cada celda. ### Creando Arreglos de Celdas ```matlab % Usando llaves c = {1, 'hola', [1, 2, 3]} % Usando la funcion cell c = cell(1, 3); c{1} = 42; c{2} = 'MATLAB'; c{3} = magic(3); ``` ### Accediendo a Arreglos de Celdas ```matlab c = {'manzana', 'banana', 'cereza'}; c{1} % Devuelve 'manzana' (contenido) c(1) % Devuelve {'manzana'} (celda) ``` ### Convirtiendo entre Arreglos y Celdas ```matlab % Arreglo a celda arr = [1, 2, 3, 4, 5]; c = num2cell(arr) % Celdas a arreglo c = {1, 2, 3, 4, 5}; arr = [c{:}] ``` ## Estructuras Las estructuras organizan datos usando campos con nombre. ### Creando Estructuras ```matlab % Asignacion directa persona.nombre = 'Juan'; persona.edad = 30; persona.email = 'juan@ejemplo.com'; % Usando la funcion struct persona = struct('nombre', 'Juan', 'edad', 30, 'email', 'juan@ejemplo.com'); ``` ### Arreglo de Estructuras ```matlab % Crear multiples estructuras personas(1).nombre = 'Alicia'; personas(1).edad = 25; personas(2).nombre = 'Roberto'; personas(2).edad = 30; % Acceder a todos los nombres nombres = {personas.nombre} % {'Alicia', 'Roberto'} ``` ### Estructuras Anidadas ```matlab empleado.nombre = 'Juan'; empleado.dept.nombre = 'Ingenieria'; empleado.dept.ubicacion = 'Edificio A'; ``` ## Tipo Logico ```matlab % Crear valores logicos isValid = true; isEmpty = false; % Arreglos logicos logicVec = [true, false, true, true]; % Convertir a logico x = [0, 1, 2, -3]; y = logical(x) % [false, true, true, true] % Encontrar valores verdaderos find(logicVec) % Devuelve [1, 3, 4] ``` ## Conversion de Tipos ```matlab x = 42; % A cadena s = string(x) s = num2str(x) s = int2str(x) % A numero str = '123'; n = str2double(str) n = str2num(str) % A entero (con redondeo) y = 3.7; int8(y) % 4 (redondea) floor(y) % 3 (piso) ceil(y) % 4 (techo) round(y) % 4 (redondeo) ``` ## Arreglos Vacios ```matlab emptyVec = [] % Arreglo vacio 0x0 emptyMat = zeros(0, 5) % Matriz vacia 0x5 isempty(emptyVec) % true numel(emptyVec) % 0 ``` ## Resumen - MATLAB tiene multiples tipos numericos: double, single y enteros - Usar `class()` para verificar tipo, `isa()` para probar tipo - Los arreglos usan parentesis para indexacion `A(fila, col)` - Los arreglos de celdas usan llaves `c{indice}` para contenido - Las estructuras usan notacion de punto `estructura.campo` - Funciones de conversion de tipos: `string()`, `num2str()`, `str2double()` - Arreglos vacios creados con `[]` o `zeros(0,n)`

Comments

Comments powered by Giscus

To enable comments, add your Giscus embed code here.

Learn more about Giscus →