Matlab - Llevar datos a tabla usando GUI

 
Vista:
sin imagen de perfil

Llevar datos a tabla usando GUI

Publicado por Gilberto (3 intervenciones) el 31/10/2016 15:38:46
Buenos días
Estoy creando un programa con un método numerico que es Biseccion, en la interfaz se me genera la gráfica de la función, pero los datos que necesito que este muestre en la tabla de la interfaz no aparecen, el codigo que estoy usando es el siguiente:

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
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
function varargout = metodoBiseccion(varargin)
% METODOBISECCION M-file for metodoBiseccion.fig
%      METODOBISECCION, by itself, creates a new METODOBISECCION or raises the existing
%      singleton*.
%
%      H = METODOBISECCION returns the handle to a new METODOBISECCION or the handle to
%      the existing singleton*.
%
%      METODOBISECCION('CALLBACK',hObject,eventData,handles,...) calls the local
%      function named CALLBACK in METODOBISECCION.M with the given input arguments.
%
%      METODOBISECCION('Property','Value',...) creates a new METODOBISECCION or raises the
%      existing singleton*.  Starting from the left, property value pairs are
%      applied to the GUI before metodoBiseccion_OpeningFcn gets called.  An
%      unrecognized property name or invalid value makes property application
%      stop.  All inputs are passed to metodoBiseccion_OpeningFcn via varargin.
%
%      *See GUI Options on GUIDE's Tools menu.  Choose "GUI allows only one
%      instance to run (singleton)".
%
% See also: GUIDE, GUIDATA, GUIHANDLES

% Edit the above text to modify the response to help metodoBiseccion

% Last Modified by GUIDE v2.5 31-Oct-2016 09:26:46

% Begin initialization code - DO NOT EDIT
gui_Singleton = 1;
gui_State = struct('gui_Name',       mfilename, ...
    'gui_Singleton',  gui_Singleton, ...
    'gui_OpeningFcn', @metodoBiseccion_OpeningFcn, ...
    'gui_OutputFcn',  @metodoBiseccion_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
% End initialization code - DO NOT EDIT


% --- Executes just before metodoBiseccion is made visible.
function metodoBiseccion_OpeningFcn(hObject, eventdata, handles, varargin)
% This function has no output args, see OutputFcn.
% hObject    handle to figure
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)
% varargin   command line arguments to metodoBiseccion (see VARARGIN)

% Choose default command line output for metodoBiseccion
handles.output = hObject;

% Update handles structure
guidata(hObject, handles);

% UIWAIT makes metodoBiseccion wait for user response (see UIRESUME)
% uiwait(handles.figure1);


% --- Outputs from this function are returned to the command line.
function varargout = metodoBiseccion_OutputFcn(hObject, eventdata, handles)
% varargout  cell array for returning output args (see VARARGOUT);
% hObject    handle to figure
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)

% Get default command line output from handles structure
varargout{1} = handles.output;



function fun_Callback(hObject, eventdata, handles)
% hObject    handle to fun (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)

% Hints: get(hObject,'String') returns contents of fun as text
%        str2double(get(hObject,'String')) returns contents of fun as a double


% --- Executes during object creation, after setting all properties.
function fun_CreateFcn(hObject, eventdata, handles)
% hObject    handle to fun (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    empty - handles not created until after all CreateFcns called

% Hint: edit controls usually have a white background on Windows.
%       See ISPC and COMPUTER.
if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
    set(hObject,'BackgroundColor','white');
end



function a_Callback(hObject, eventdata, handles)
% hObject    handle to a (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)

% Hints: get(hObject,'String') returns contents of a as text
%        str2double(get(hObject,'String')) returns contents of a as a double


% --- Executes during object creation, after setting all properties.
function a_CreateFcn(hObject, eventdata, handles)
% hObject    handle to a (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    empty - handles not created until after all CreateFcns called

% Hint: edit controls usually have a white background on Windows.
%       See ISPC and COMPUTER.
if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
    set(hObject,'BackgroundColor','white');
end



function b_Callback(hObject, eventdata, handles)
% hObject    handle to b (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)

% Hints: get(hObject,'String') returns contents of b as text
%        str2double(get(hObject,'String')) returns contents of b as a double


% --- Executes during object creation, after setting all properties.
function b_CreateFcn(hObject, eventdata, handles)
% hObject    handle to b (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    empty - handles not created until after all CreateFcns called

% Hint: edit controls usually have a white background on Windows.
%       See ISPC and COMPUTER.
if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
    set(hObject,'BackgroundColor','white');
end



function error_Callback(hObject, eventdata, handles)
% hObject    handle to error (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)

% Hints: get(hObject,'String') returns contents of error as text
%        str2double(get(hObject,'String')) returns contents of error as a double


% --- Executes during object creation, after setting all properties.
function error_CreateFcn(hObject, eventdata, handles)
% hObject    handle to error (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    empty - handles not created until after all CreateFcns called

% Hint: edit controls usually have a white background on Windows.
%       See ISPC and COMPUTER.
if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
    set(hObject,'BackgroundColor','white');
end


% --- Executes on button press in calcular.
function calcular_Callback(hObject, eventdata, handles)
% hObject    handle to calcular (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)
fun=get(handles.fun,'String');
a=get(handles.a,'String');
b=get(handles.b,'String');
error=get(handles.error,'String');
axes(handles.axes1)
c=1;
for i=-10:10
    v(c)=i;
    x=i;p(c)=eval(fun);
    c=c+1;
end
az=v;
bz=p;
plot(az,bz,'r')
Paso=0; % Contador de número de iteracciones
er=1;
while er>error
    Paso=Paso+1;
    m=(a+b)/2;  %Este "m" es el valor del mk anterior;
    L=abs(a-b);
    x=a;fa=eval(fun);
    x=b;fb=eval(fun);
    x=m; fm=eval(fun);
    tabla(:,3)= L;
    tabla(:,4)= m;
    tabla(:,5)= fm;
    set(handles.uitable1,'Data',tabla);
    if Paso==1
        er='';
    end
    if sign(fa)==sign(fm);
        a=m;
        b=b;
    else
        a=a;
        b=m;
    end
    c2=(a+b)/2; %Este "c2" es el valor del m(k+1) siguiente;
    er=abs((c2-m)/c2); % Calculo error relativo;
    tabla(:,1)= a;
    tabla(:,2)= b;
    tabla(:,6)= er;
    set(handles.uitable1,'Data',tabla);
end



% --- Executes when entered data in editable cell(s) in uitable1.
function uitable1_CellEditCallback(hObject, eventdata, handles)
% hObject    handle to uitable1 (see GCBO)
% eventdata  structure with the following fields (see UITABLE)
%	Indices: row and column indices of the cell(s) edited
%	PreviousData: previous data for the cell(s) edited
%	EditData: string(s) entered by the user
%	NewData: EditData or its converted form set on the Data property. Empty if Data was not changed
%	Error: error string when failed to convert EditData to appropriate value for Data
% handles    structure with handles and user data (see GUIDATA)


Muchas Gracias
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
Imágen de perfil de JOSE JEREMIAS CABALLERO
Val: 8.059
Oro
Ha mantenido su posición en Matlab (en relación al último mes)
Gráfica de Matlab

Llevar datos a tabla usando GUI

Publicado por JOSE JEREMIAS CABALLERO (5779 intervenciones) el 01/11/2016 14:41:07
Podrias subir tus archivos tanto el fig y el m para poder ejecutar y poder hacer los arreglos pertinentes para tu pregunta.


Saludos.
JOSE JEREMIAS CABALLERO
Asesor de Proyectos con Matlab
programador en matlab
Servicios de programación matlab
jjcc94@hotmail.com
El correo es para servicios de programación, toda ayuda gratuita es vía foro.

http://matlabcaballero.blogspot.com
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

Llevar datos a tabla usando GUI

Publicado por Gilberto (3 intervenciones) el 01/11/2016 16:51:03
Pude solucionar el problema de llevar los datos a la tabla, ahora me surgió uno nuevo, es que solamente lleva a la tabla el ultimo dato de cada variable y no genera la lista por cada racionero como lo requiero, adjunto archivos

Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de JOSE JEREMIAS CABALLERO
Val: 8.059
Oro
Ha mantenido su posición en Matlab (en relación al último mes)
Gráfica de Matlab

Llevar datos a tabla usando GUI

Publicado por JOSE JEREMIAS CABALLERO (5779 intervenciones) el 01/11/2016 19:12:35
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
48
49
50
51
function calcular_Callback(hObject, eventdata, handles)
% hObject    handle to calcular (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)
fun=get(handles.fun,'String');
a=str2num(get(handles.a,'String'));
b=str2num(get(handles.b,'String'));
error=str2num(get(handles.error,'String'));
axes(handles.axes1)
c=1;
for i=-10:10
    v(c)=i;
    x=i;p(c)=eval(fun);
    c=c+1;
end
az=v;
bz=p;
plot(az,bz,'b')
Paso=0; % Contador de número de iteracciones
er=1;
i=1;
while er>error
    Paso=Paso+1;
    m=(a+b)/2;  %Este "m" es el valor del mk anterior;
    L=abs(a-b);
    x=a;fa=eval(fun);
    x=b;fb=eval(fun);
    x=m; fm=eval(fun);
    if Paso==1
        er='';
    end
    if sign(fa)==sign(fm);
        a=m;
        b=b;
    else
        a=a;
        b=m;
        disp(a)
    end
    c2=(a+b)/2; %Este "c2" es el valor del m(k+1) siguiente;
    er=abs((c2-m)/c2); % Calculo error relativo; 
 tabla(i,1)= a;
 tabla(i,2)= b;
 tabla(i,6)= er;
 tabla(i,3)= L;
 tabla(i,4)= m;
 tabla(i,5)= fm;
 i=i+1;
end
set(handles.uitable1,'Data',tabla);
set(handles.prueba,'String',m)


Saludos.
JOSE JEREMIAS CABALLERO
Asesor de Proyectos con Matlab
programador en matlab
Servicios de programación matlab
jjcc94@hotmail.com
El correo es para servicios de programación, toda ayuda gratuita es vía foro.


http://matlabcaballero.blogspot.com
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
sin imagen de perfil

Llevar datos a tabla usando GUI

Publicado por Gilberto (3 intervenciones) el 02/11/2016 05:21:33
Muchas gracias
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar