jueves, 29 de marzo de 2012

Procesamiento de audio con matlab

Procesamiento de audio con matlab.
Este es una aplicación para leer un audio, reproducirlo, pausarlo, continuar, parar  y grabar desde el micrófono, ademas podemos cambiar el volumen a nuestro gusto, o si deseamos solo cambiamos uno de los altavoces, esta hecho  con simulink.

José Jeremías Caballero
Servicios de Programación en MatLab
Lima - Perú
Para mayor informacion, contactarse a jjcc94@hotmail.com

el comando cd en Matlab

 ¿Para que sirve el comando cd de matlab?.
Respuesta: El comando cd sirve para cambiar de directorio y pwd sirve para ver en que directorio nos encontramos, y dir sirve para ver los archivos del directorio actual.
ejemplo:
>> pwd
ans =
C:\Users\jeremias\Desktop\MATLAB
>> dir
.                      IMAGENES               subir_bajar_volumen.m 
..                     pol10.m               
>> cd('IMAGENES')
>> pwd
ans =
C:\Users\jeremias\Desktop\MATLAB\IMAGENES
>> dir
.               Imagen0972.jpg  Imagen4911.jpg  bg_7993835.jpg  pout.tif       
..              Imagen3981.JPG  Imagen4940.jpg  caballero.jpg  
>> cd ..
>> pwd
ans =
C:\Users\jeremias\Desktop\MATLAB
José Jeremías Caballero
Servicios de Programación en MatLab
Lima - Perú
Para mayor informacion, contactarse a jjcc94@hotmail.com
http://www.matlabcaballero.blogspot.com/
 

miércoles, 28 de marzo de 2012

Uso de Legend en un bucle

Quiero hacer código sencillo que me vaya creando un plot con una serie de puntos a través de un bucle. Quiero que cada vez que mi bucle avance una iteración se vaya 'adicionando' a la leyenda los puntos que va representado en la figura, de manera que cuando haya recorrido todo el bucle tenga en este caso una  leyenda compuesta por n elementos de los datos leídos. (Siendo A una matriz alfa numérica, donde la primera fila es una cadena y los demás filas son números, y A.data es una matriz numérica) ¿Hay algún comando tipo hold on para las gráficas que haga que mi leyenda vaya adicionando líneas?
function caracteristicas_aleatorias1
close all
A=importdata('caracteristicas_aleatorias.txt');
filas=size(A.data,1);
figure(1)
marcadores='+o*.xsd^v><ph';
estilo ={'-','--',':','-.'};
color='rgbcmyk';
axis([min(A.data(:,1))-0.2 max(A.data(:,1))+0.2 min(A.data(:,2)) max(A.data(:,2))])
hold on
for i=1:filas
   pos_marcadores=round(1+(length(marcadores)-1)*rand);
   pos_estilo=round(1+(length(estilo)-1)*rand);
   pos_color=round(1+(length(color)-1)*rand); 
   plot(A.data(i,1),A.data(i,2),[cell2mat(estilo(pos_estilo)) marcadores(pos_marcadores)...
   color(pos_color)],'linewidth',2)
   a{i}=['(',num2str(A.data(i,1)),' , ', num2str(A.data(i,2)),')'];
   set(legend(a),'Location','Northeast')
   pause(1)
end
hold off

EJECUCION
>> caracteristicas_aleatorias1
data =
    0.8869    0.6026
    0.9050    0.1843
    0.4984    0.1975
    0.5292    0.8620
    0.9097    0.1256
    0.5786    0.6456
    0.7758    0.4373
    0.6614    0.6126
    0.4697    0.7375
    0.2198    0.3033

José Jeremías Caballero
Servicios de Programación en MatLab
Lima - Perú
Para mayor informacion, contactarse a jjcc94@hotmail.com
http://www.matlabcaballero.blogspot.com/
 

domingo, 25 de marzo de 2012

Matlab me da una respuesta muy larga usando numeros complejos

http://www.lawebdelprogramador.com/foros/Matlab/1320558-Matlab_me_da_una_respuesta_muy_larga_usando_numeros_complejos.html
clear all;
format short
eqn1='4=(V1/8)+((V1-V2)/(2-1*j*4))+((V1-V3)/(1*j*10))';
eqn2='0=(V2/(1*j*6))+((V2-V1)/(2-1*j*4))+((V2-V3)/1)';
eqn3='-2=(V3/(-1*j*2))+((V3-V2)/1)+((V3-V1)/(1*j*10))';
answer=solve (eqn1,eqn2,eqn3,'V1','V2','V3');
V1=vpa (sym (answer. V1)), V2=vpa (sym (answer. V2)), V3=vpa (sym (answer.
V3))
 
%Respuesta de Matlab
 
V1 =(8.0*j*(- 98.0*j^2 + 43.0*j + 9.0))/(- 29.0*j^3 + 33.0*j^2 + 20.0*j + 2.0)
V2 =-(12.0*j^2*(10.0*j^2 + 7.0*j - 14.0))/(- 29.0*j^3 + 33.0*j^2 + 20.0*j + 2.0)
V3 =-(2.0*j*(60.0*j^3 + 37.0*j^2 + 3.0*j + 4.0))/(- 29.0*j^3 + 33.0*j^2 + 20.0*j + 2.0)

% Yo quiero una respuesta tipo: A= a+bi

V1 =
15.6478 - 2.8792i
 
V2 =
3.8798 + 3.4230i
 

  V3 =
2.0131 + 1.0529i
SOLUCION EN MATLAB
clear all;
eqn1='4=(V1/8)+((V1-V2)/(2-1*j*4))+((V1-V3)/(1*j*10))';
eqn2='0=(V2/(1*j*6))+((V2-V1)/(2-1*j*4))+((V2-V3)/1)';
eqn3='-2=(V3/(-1*j*2))+((V3-V2)/1)+((V3-V1)/(1*j*10));'
[v1 v2 v3]=solve (eqn1,eqn2,eqn3,'V1','V2','V3')
V1=str2num(char(v1))
V2=str2num(char(v2))
V3=str2num(char(v3))
Ejecucion
>> dsolvecaballero
V1 =
  15.6478 - 2.8792i

V2 =
   3.8798 + 3.4230i
V3 =
   2.0131 + 1.0529i
José Jeremías Caballero
Servicios de Programación en MatLab
Lima - Perú
Para mayor informacion, contactarse a jjcc94@hotmail.com

 

Reconocimiento de Rostro en Matlab

Aca le presento, un nuevo aplicación de Matlab. La cual es el reconocimiento de Rostro.
José Jeremías Caballero
Servicios de Programación en MatLab
Lima - Perú
Para mayor informacion, contactarse a jjcc94@hotmail.com

 

viernes, 23 de marzo de 2012

Abriendo Librerias en Matlab Interface

http://www.lawebdelprogramador.com/foros/Matlab/1319469-Problema_union_dos_direcciones.html


 Hola, estoy haciendo una GUI y me he encontrado con el siguiente problema. Tengo una carpeta que tiene dos archivos con datos (radiobutton1 y radiobutton2). En lugar de poner directamente la dirección de esos archivos lo que hago es primero preguntar en dónde se encuentra esa carpeta y guardar esa dirección.
 

José Jeremías Caballero
Servicios de Programación en MatLab
Lima - Perú
Para mayor informacion, contactarse a jjcc94@hotmail.com

martes, 20 de marzo de 2012

Creacion de Toolbar en Matlab Guide


Colocar imagenes o iconos en los menus de las GUIDE de matlab en vez del nombre,
iconos tales como el disquette de guardar, la lupa + ,la lupa -, La mano de arratres, etc.

José Jeremías Caballero
Servicios de Programación en MatLab
Lima - Perú
Para mayor informacion, contactarse a   jjcc94@hotmail.com


sábado, 10 de marzo de 2012

Activar y Desactivar Buttom Group en Matlab Interface

jueves, 8 de marzo de 2012

Procesamiento de Señales Biomédicas


José Jeremías Caballero
Servicios de Programación en MatLab
 Lima - Perú
 Para mayor informacion,  contactarse  a  jjcc94@hotmail.com 

miércoles, 7 de marzo de 2012

BASE DE DATOS EN MATLAB INTERFACE

Bueno publique mi duda en la web del programador  ojala me recuerdes , y la sugerencia fueenviar el programa ya que es algo largo por el código del guide .
Lo que yo estoy haciendo es una interfaz gráfica en la cual se ingresan una serie da datos personales de un paciente , y posteriormente esta información  la quiero almacenar en un documento de excel para ir formando una base de datos. Utilice el comando xlswrite para intentar resolver mi problema , sin embargo
al inicio funcionaba  bien pero con algunos problemas , ya que el ingresar datos nuevos se borraban los anteriores y ademas como son una cadena de caracteres cada una de las letras la guardaba en una celda , digamos que las descomponía .
Te envió ambos archivos y el documento en excel que hice para guardar la información
De nuevo te agradezco mucho por tu ayuda, no pense que me contestaran jaja !!!

José Jeremías Caballero
Servicios de Programación en MatLab
 Lima - Perú
 Para mayor informacion,  contactarse  a  jjcc94@hotmail.com 

viernes, 2 de marzo de 2012

GRAFICA DE TEMPERATURA vs MES EN MATLAB INTERFACE

     Hola, siempre he querido hacer un programa como el siguiente:
- Tengo muchísimos archivos .dat que contienen puntos X,Y (Gráfica de temperatura frente a meses)
- Las carpetas están por año y en cada una de ellas hay 12 archivos .dat
- Me gustaría crear una GUI, de tal manera que te aparezca la opción de escoger un año y el mes, y que luego el ya escoja ese archivo .dat y lo represente.
He visto que ayer preguntaron sobre como leer archivos .txt, esto es algo parecido pero yo no quiero ir a abrir y escoger el archivo, sino que el propio programa ya lo abra.
Para complicarlo más, me gustaría que esto se convirtiese en un ejecutable y poder instalarlo en otros ordenadores (junto a una carpeta con todos esos archivos. dat).
http://www.lawebdelprogramador.com/foros/Matlab/1316249-GUI_para_mostrar_coordenadas_en_diferentes_ordenadores.html

José Jeremías Caballero
Servicios de Programación en MatLab
 Lima - Perú
 Para mayor informacion,  contactarse  a  jjcc94@hotmail.com 

 

CAMBIO DE BASE EN MATLAB INTERFACE

Necesito pasar una cadena de caracteres a hexadecimal. Esta cadena la leo desde un editText y su contenido es una cadena en hexadecimal que es a lo que yo quiero transformarlo.
http://www.lawebdelprogramador.com/foros/Matlab/1311204-Pasar_de_String_a_Hexadecimal.html

function varargout = hexadecimal_decimal_hexadecimal(varargin)
clc
gui_Singleton = 1;
gui_State = struct('gui_Name',       mfilename, ...
                   'gui_Singleton',  gui_Singleton, ...
                   'gui_OpeningFcn', @hexadecimal_decimal_hexadecimal_OpeningFcn, ...
                   'gui_OutputFcn',  @hexadecimal_decimal_hexadecimal_OutputFcn, ...
                   'gui_LayoutFcn',  [] , ...
                   'gui_Callback',   []);
if nargin && ischar(varargin{1})
    gui_State.gui_Callback = str2func(varargin{1});
end

if nargout
    [varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:});
else
    gui_mainfcn(gui_State, varargin{:});
end

function hexadecimal_decimal_hexadecimal_OpeningFcn(hObject, eventdata, handles, varargin)
handles.output = hObject;
guidata(hObject, handles);

function varargout = hexadecimal_decimal_hexadecimal_OutputFcn(hObject,...
    eventdata, handles)
varargout{1} = handles.output;
cadena_hexa1='35 2E A8 D4';
cadena_decimal1='53   46   168   212';   
set(handles.text6,'String',cadena_hexa1); 
set(handles.text12,'String',cadena_decimal1);

function ingrese_cadena_hexadecimal_Callback(hObject, eventdata, handles)
cadena_hexa=get(hObject,'String');
eb1=find(cadena_hexa==' ');
k=1;
m=1;
 for i=1:length(eb1)
     cadena_dec{k}=cadena_hexa(m:eb1(i)-1);
     k=k+1;
     m=eb1(i)+1;
 end
 cadena_dec{k}=cadena_hexa(m:end);
 for i=1:length(cadena_dec)
 decimal(i)=hex2dec(cell2mat(cadena_dec(i)));
 end
 set(handles.text3,'String',num2str(decimal))

function ingrese_cadena_decimal_Callback(hObject, eventdata, handles)
cadena_decimal=str2num(get(hObject,'String'));
hexadecimal=dec2hex(cadena_decimal);
 k=1;
 for i=1:size(hexadecimal,1)
     hex{k}=hexadecimal(i,:);
     hex{k+1}=',';
     k=k+2;
 end
set(handles.text10,'String',cell2mat(hex))




José Jeremías Caballero
Servicios de Programación en MatLab
 Lima - Perú
 Para mayor informacion,  contactarse  a  jjcc94@hotmail.com