%% prog 20230519 arreglos 1D clear all; clearvars; close all; clc; %un arreglo es un conjunto de datos reunidos como una sola variable de caracter indexado %la indexación otorga a cada dato del arreglo una posicion dada por un numero entero %natuaral, es decir no es numero de punto flotante, cero o negativo %en notras palabras los índices son 1,2,3,....,N, el índice se indica entre parentesis %los datos son numeros de cualquier tio o caracteres %% arreglo de caracteres %arreglo carac01 = 'hola como estas'; %indexamos los primeros cuatro caracteres para escribirlos en la ventana de comandos n = 1; disp(carac01(1)); n = 2; disp(carac01(2)); n = 3; disp(carac01(3)); n = 4; disp(carac01(4)); disp(' '); disp(carac01); %% arreglos numericos horizontales o arreglo fila %se construyen de la siguiiente forma ya sea usando coma "," o espacio en blanco " " %nombre_arreglo = [num01,num02,num03,....,num0N]; %nombre_arreglo = [num01 num02 num03 .... num0N]; arr_hor_01 = [1,2,3,4]; %arreglo fila (1X4) arr_hor_02 = [3.768 10.2 7.7456 20.7654 3.90678 sqrt(2) 10^(5/9) log10(12)]; %arreglo fila (1X8) disp('') disp('arreglos fila o horizontales'); disp(arr_hor_01); disp(' '); disp(arr_hor_02); %para llamar un elemento del arreglo usamos nombre_arreglo(numero_indice) %el indice debe ser un entero natural (1,2,3,...) podemos usar operaciones %aritmeticas y matematicas x01 = tan( arr_hor_01(3) + arr_hor_02(4) ); disp(' '); disp(x01); %% arreglos numericos verticales o arreglo columna %se construyen de la siguiente forma ya sea usando coma ";" %nombre_arreglo = [num01;num02;num03;....;num0N]; arr_vert_01 = [0;9;8;7;6]; %arreglo fila (5X1) arr_vert_02 = [3;log10(100);sqrt(4)]; %arreglo fila (3X1) disp('') disp('arreglos columna o verticales'); disp(arr_vert_01); disp(' '); disp(arr_vert_02); %% incializacion de arreglos usando ciclos for %arreglos verticales o tipo fila for n = 1:100 arr_hor_03(1,n) = n/10 + n^2; %arreglo fila (1X100) arr_hor_04(n) = n/2 - log10(n^2); %arreglo fila (1X100) end; %arreglos verticales o tipo fila for n = 1:50 arr_vert_03(n,1) = sin(n/10); %arreglo columna (50X1) arr_vert_04(n,1) = cos(n/20); %arreglo columna (50X1) end; %% operaciones aritméticas de arreglos elemento a elemento %deben tener el mismo tamaño y la misma orientacion arr_hor_05 = arr_hor_03 + arr_hor_04; %suma elemento a elemento arr_hor_06 = arr_hor_03 - arr_hor_04; %resta elemento a elemento arr_hor_07 = arr_hor_03 .* arr_hor_04; %multiplicacion elemento a elemento (.*) arr_hor_08 = arr_hor_03 ./ arr_hor_04; %division elemento a elemento (./) arr_hor_09 = arr_hor_03.^2; %elevado elemento a elemento (.^) %esto nos ahora los comandos %for n = 1:100 % arr_hor_05(n) = arr_hor_03(n) + arr_hor_04(n); %end; %al no tener igual tamanho y/o la misma operacion el resultado es una matriz %y para este caso no tiene sentido arr_hor_10 = arr_hor_08 + arr_vert_04; %% funciones matematicas %estas se aplican a cada elemento del arreglo arr_hor_11 = sqrt(arr_hor_08); arr_vert_05 = exp(-arr_vert_04); %% arreglos especiales %su funcion es prelocalizar arreglos en el espacio de variables %arreglo de unos arreglo_fila_de_unos = ones(1,10); arreglo_columna_de_unos = ones(5,1); %arreglo de ceros arreglo_fila_de_ceros = zeros(1,5); arreglo_columna_de_ceros = zeros(10,1); %arreglo de numeros aleatoreos entre 0 y 1 arreglo_fila_de_aleatoreos = rand(1,5); arreglo_columna_de_aleatorios = rand(10,1); %arreglo de numeros enteros aleatoreos entre 0 y 10 arreglo_fila_de_aleatoreos_enteros = randi([1 10],1,5); arreglo_columna_de_aleatorios_enteros = randi([1 10],5,1); %donde el rango va desde 1 a 10 %% areglos predeterminados %arreglos fila %nombre_arreglo = num_inicio:incremento:num_final arreglo_enteros_1a10_fila = 1:1:10; arreglo_puntoflotante_1a10_fila = 1:0.1:10; %comando transpose() convierte fila en columna y columna en fila arreglo_enteros_10a1_columna = transpose(10:-1:1); arreglo_puntoflotante_menospi_a_pi_columna = transpose(-pi:0.1*pi:pi); %% ejemplo util de arreglos predeterminados tini = 0; tfin = 2; fs = 44100; dt = 1/fs; t = tini:dt:tfin; x = 0.75*sin(2*pi*1000*t); sound(x,fs);