viernes, 25 de noviembre de 2011

Graficos con guide en matlab

function varargout = gaff(varargin)
gui_Singleton = 1;
gui_State = struct('gui_Name', mfilename, ...
'gui_Singleton', gui_Singleton, ...
'gui_OpeningFcn', @gaff_OpeningFcn, ...
'gui_OutputFcn', @gaff_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 gaff_OpeningFcn(hObject, eventdata, handles, varargin)
handles.output = hObject;

guidata(hObject, handles);

function varargout = gaff_OutputFcn(hObject, eventdata, handles)
varargout{1} = handles.output;


function lista_Callback(hObject, eventdata, handles)
fun=get(handles.lista, 'Value');
switch fun

case 1
fplot('sin(x)',[0 2*pi])

case 2
fplot('cos(x)',[0 2*pi])

case 3
fplot('x^2+3', [0 20])
end
guidata(hObject, handles);

function lista_CreateFcn(hObject, eventdata, handles)
if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
set(hObject,'BackgroundColor','white');
end

Interfaz en matlab, SUMA

function varargout = suma(varargin)
gui_Singleton = 1;
gui_State = struct('gui_Name', mfilename, ...
'gui_Singleton', gui_Singleton, ...
'gui_OpeningFcn', @suma_OpeningFcn, ...
'gui_OutputFcn', @suma_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 suma_OpeningFcn(hObject, eventdata, handles, varargin)
handles.output = hObject;

guidata(hObject, handles);

function varargout = suma_OutputFcn(hObject, eventdata, handles)
varargout{1} = handles.output;



function numero1_Callback(hObject, eventdata, handles)
function numero1_CreateFcn(hObject, eventdata, handles)
if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
set(hObject,'BackgroundColor','white');
end



function numero2_Callback(hObject, eventdata, handles)
function numero2_CreateFcn(hObject, eventdata, handles)
if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
set(hObject,'BackgroundColor','white');
end


function sumar_Callback(hObject, eventdata, handles)
num1=get(handles.numero1,'String');
num2=get(handles.numero2,'String');

c=str2num(num1)+ str2num(num2);
set(handles.resultado,'String',c);
guidata(hObject,handles);

“Diferencias divididas de Newton en Matlab”

CODIGO:

% ingreso de datos.

x=[-1 0 1 2 3];y=[3 0 -1 1 2];

xa=x;ya=y;

%se le dan los valores de xa e ya a las variables x e y que serán utilizadas mas adelante.

% Formacion de las diferencias divididas a través de ciclos “for” e “if”.

d=zeros(length(y));

%zeros(n) genera una matriz de nxn con todos sus valores iguales a cero, en este caso utiliza el largo del arreglo y

d(:,1)=y';

%Se asigna valor de y’ a la columna de la matriz creada anteriormente

for k=2:length(x)

%se hacen dos ciclos, uno dentro de otro, donde van variando los valores de j y k, y va entregando cuales son los valores que se utilizaran en

for j=1:length(x)+1-k

d(j,k)=(d(j+1,k-1)-d(j,k-1))/(x(j+k-1)-x(j));

end

end

for w=1:length(x)

ds=num2str(abs(d(1,w)));

%los valores numericos de la matriz “ds” en las coordenadas (1,w) se transforman en “string”, cuyos valores no serán modificados después, y serán mostrados al final en “presentación de resultados”

if w>1

%si w es mayor que 1…

if x(w-1)<0

%si la multiplicación de x por (w-1)es menor a cero, se agrega un símbolo “+” al polinomio de resultado.

sg1='+';

else

%en caso contrario, el símbolo matemático es “-“.

sg1='-';

end

end

if d(1,w)<0

sg2='-';

else

sg2='+';

end

if w==1

acum=num2str(d(1,1));

%se crea un contador de nombre “acum” que irá almacenando el polinomio obtenido, y lo mostrará el final del codigo

elseif w==2

polinact=['(x' sg1 num2str(abs(x(w-1))) ')' ];

actual=[ds '*' polinact];

acum=[acum sg2 actual];

else

polinact=[polinact '.*' '(x' sg1 num2str(abs(x(w-1))) ')' ];

actual=[ds '*' polinact];

acum=[acum sg2 actual];

end

end

% Presentacion de resultados

fprintf('los valores de X e Y son');

disp(xa);

disp(ya);

%imprimir en pantalla el polinomio obtenido

fprintf('El polinomio interpolación Newton obtenido es: %s ',acum);