Cómo usar VB para llamar la imagen obtenida mediante la programación de MATLAB y mostrar la imagen en la interfaz del formulario VB
Hablemos de ello a grandes rasgos:
Utilice vb para llamar al servidor de automatización de matlab.
1) Deje que matlab se convierta en una aplicación de vb
2) Ejecutar el programa de dibujo correspondiente.
3) Dado que la imagen dibujada está en la memoria, VB tiene un comando que puede llamar al portapapeles y obtener directamente la imagen del portapapeles.
4) En VB, asigne los datos de imagen obtenidos al control de imagen.
Dé un ejemplo:
El código es el siguiente:
Private?Sub?Form_Load()
Set?MATLAB?= ?CreateObject( "Matlab.application")
MATLAB.execute?("N=1024; n=0:N-1; t=n/12800; q=n*12800/1024; w= 2*pi *50;")
MATLAB.execute?("x=220*cos(w*t 0.42) 10*cos(3*w*t 0.8) 5*cos(5*w *t 0.4 ) 3*cos(7*w*t 0.65) 2*cos(9*w*t 0.3) 1.8*cos(11*w*t 0.36);")
MATLAB.execute ?(" set(gcf,'visible','off'),plot(t,x,'b');axis();grid?on;xlabel('tiempo/S');ylabel('amplitud/V ') ;")
MATLAB.execute?("title('señal original'); set(gcf, 'color', 'w'); print(gcf, '-dmeta')") p>
sinwave.Picture?=?Clipboard.GetData()
MATLAB.execute?("y=fft(x);set(gcf,'visible','off') ;bar (q(1:48), 2*abs(y(1:48))/N); xlabel('frecuencia/Hz');")
MATLAB.execute?("grid ?on ;set(gcf,'color','w');set(gca,'XTickMode','manual','XTick',);print(gcf,'-dmeta');")
spectrumwave.Picture?=?Clipboard.GetData()
End?Sub
Explicación del código:
sinwave.Picture?=?Clipboard.GetData ( )
El lado izquierdo es el control de imagen de VB y el lado derecho es para obtener los datos del portapapeles y mostrarlos en VB.
Hay dos controles de imagen en este ejemplo: sinwave.Picture, espectrowave.Picture.