Matlab - exportar datos de una funcion en guide a excel urgente!!!!

 
Vista:
sin imagen de perfil

exportar datos de una funcion en guide a excel urgente!!!!

Publicado por luis carlos (4 intervenciones) el 24/07/2017 23:23:35
Buenas tardes compañeros aprecio mucho cualquier colaboracion de parte de ustedes lo que sucede es que tengo un problema necesito guardar dos valores en excel pero cuando ejecuto el guide en matlab las variables se borran y no quedan guardadas en el workspace y por eso el comando xlswrite no reconoce las variables calculas y no lo puedo guardar acontinuacion subo el codigo y si alguno de ustedes me podrian ayudar estaria agradecido muchas gracias.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
function ejecute_Callback(hObject, eventdata, handles)
% hObject    handle to ejecute (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)
tic %mirar tiempo de ejecucion empezar
 
menu_ejecutar = get(handles.opcion,'Value');
switch menu_ejecutar
 
    case 2
        tempRyB(handles);
%         handles.A{1} = str2double(get(handles.valc1,'string'));
%         handles.A{2} = str2double(get(handles.valc2,'string'));
    case 3
        tempRyB(handles);
    case 4
%         e = str2double(get(handles.val1,'string'));
%         r = str2double(get(handles.val2,'string'));
%         newtonraphson2(handles)
 
end
toc % terminar
return

y aca esta el codigo donde ejecuto la fucncion y en el cual borra las variables cuando termina el proceso alguna solucion para poder guardar las variables y despues poderlas exportar

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
function x=tempRyB(handles)
 
s = xlsread('datanewmulti.xlsx','B2:F7');
z = s(:,1);
a = [ s(:,2) s(:,3) s(:,4) s(:,5) ];
x0 = str2double(get(handles.val1,'string'));
Q = str2double(get(handles.val2,'string'));
 
syms x
k = sym(zeros(6,1));
ftr = sym(zeros(6,1));
ftrdx = sym(zeros(6,1));
if Q==0 && get(handles.opcion,'Value')==2
for i=1:1:6
    k(i,1) = (( a(i,1) + a(i,2)*x + a(i,3)*x^2 + a(i,4)*x^3 ) ^3)*x ;
    ftr(i,1)=(z(i)/k(i)); %temperatura de rocio
    ftrdx(i,1) = diff(ftr(i,1),x);   %derivamos la funcion ftr con respecto a x y lo asignamos a la variable ftrdx
end
elseif Q==1 && get(handles.opcion,'Value')==3
    for i=1:1:6
    k(i,1) = (( a(i,1) + a(i,2)*x + a(i,3)*x^2 + a(i,4)*x^3 ) ^3)*x ;
    ftr(i,1)=(z(i)*k(i)); %temperatura de burbuja
    ftrdx(i,1) = diff(ftr(i,1),x);   %derivamos la funcion ftr con respecto a x y lo asignamos a la variable ftrdx
    end
end
f = 1-sum(vpa(ftr));
fx = -sum(vpa(ftrdx));
 
% inicializar varibles
error = 1;
tolerancia = 0.001;
n=0;
 
    while error>=tolerancia    %condición de terminación cuando el error sea menor a la tolerancia 
 
         n = n+1;
         x = x0 - double((subs(f,x0)/subs(fx,x0))); %formula de Newton-Raphson
         error = abs((x-x0)/x); %calculo del error
         x0=x;
    end
    respuesta=sprintf('%0.3f',x);
    set(handles.valc1,'string',respuesta);
    respuesta1=sprintf('%0.3f',Q);
     set(handles.valc2,'string',respuesta1);
   A = str2double( [respuesta;respuesta1]);
     xlswrite('datanewmulti.xlsx',A,'Hoja1','C14:C15')
return
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder