Matlab - Paso de datos entre uitables Matllab

   
Vista:

Paso de datos entre uitables Matllab

Publicado por David (32 intervenciones) el 29/09/2017 05:22:37
Hola, tengo una duda sobre como puedo pasar informacion o datos entre tablas,

Diseñe esta interfaz

tablaaaaaa

en la que ingreso el numero de filas en el edit text y cuando le doy click al boton (# filas) aparecen la cantidad de filas ingresadas en la Tabla principal, la cual tiene 5 columnas (A, B, C, D) son editables, en el que el usuario puede ingresar los numeros que desee, y la columna (EJE) tiene adaptado un pop up menu con dos opciones (X, Y), ahora mas abajo puse otras dos tablas, "Eje X" y "Eje Y".

Ahora mi pregunta es como puedo hacer para tomar las filas de datos (de columnas A, B, C, D) en la que se seleccione con el pop up menu (X) y posteriormente mandarlos a la tabla "Ejes X"; y en caso contrario si se selecciona (Y) que se manden a la tabla "Eje Y"???

Por medio de darle click al boton (Calcular).
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 Lindsey

Paso de datos entre uitables Matllab

Publicado por Lindsey lindsey.acourtt@gmail.com (108 intervenciones) el 29/09/2017 22:36:50
Hola, un modo de hacerlo es verificar los valores que se encuentran en la columna 5 de tablaTodo, y según ese valor ir separando la información y poniéndola en dos variables, una que vaya para tabaX, y otra que vaya para tablaY.
Este es el código que hace lo que te describí.
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
function botonCalcular_Callback(hObject, eventdata, handles)
% hObject    handle to botonCalcular (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)
info=get(handles.tablaTodo,'Data');
ejesx={'' '' '' '' ''};
x=0;
ejesy={'' '' '' '' ''};
y=0;
z=0;
 
for i=1:size(info,1)
    if info{i,5}=='X'
        x=x+1;
        ejesx(x,:)=info(i,:);
    elseif info{i,5}=='Y'
        y=y+1;
        ejesy(y,:)=info(i,:);
    else
        msgbox(['Fila ' num2str(i) ' no especificada'])
        z=1;
    end
end
 
if z==0
    set(handles.tablaX,'Data',ejesx)
    set(handles.tablaY,'Data',ejesy)
end

También agregué de que si había un valor sin especificar en la columna 5, se mostrara un mensaje haciendo la advertencia.
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
Revisar política de publicidad