![sin imagen de perfil sin imagen de perfil](/img/anonymouse.png)
Mostrar valores de diferentes variables en una uitable de GUI y luego exportar a excel
Publicado por Guillermo (2 intervenciones) el 11/06/2018 22:36:55
Hola buenas, llevo poco tiempo programando en Matlab y me gustaría saber como es la forma adecuada para mostrar resultados en una uitbale en GUI y luego exportar los datos a un Excel. El problema es que no se como hacer para mostrar los datos, ya que los tengo todos separados en vectores columnas. La tabla con resultados es de 12x18. Entre los cuales hay palabras y números (resultados). Un ejemplo breve de lo que tengo calculado es lo siguiente:
De esta parte del código por ejemplo si quiero mostrar los siguientes datos:
- vc
- pt
- vs
- fuvc
- fuvcs
- Avtr
- htlw
- okhl
Que quedaría mostrado en la uitable así
Como podría hacerlo?. Debo juntar todos las variables en una sola como por ejemplo tabla = {vc , pt , vs , fuvc , etc) ?. O hay otra manera?.
Ya tengo dimensionada la uitable con su encabezados y filas, solo me hace falta mostrar los datos y luego al presionar el botón exportarlos.
![Captura_de_pantalla_2018_06_11_a_la_s_16_27_30](https://image.ibb.co/b70ySo/Captura_de_pantalla_2018_06_11_a_la_s_16_27_30.png)
Espero puedan ayudarme con esta parte del problema, y disculpen si no es bien formulada la pregunta. Saludos y gracias de antemano.
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
for i = 1:cd
for j = 1:cm. %donde cd y cm los traigo de otro GUI como variable global
% y la variable geo y eti son datos obtenidos de una uitable de la GUI
if eti(i,1) == j
tvu(i,1) = (abs(V2(i,1))*1000)/(0.6*Ag(i,1));
em(i,1) = geo(j,1);
if em(i,1) < 30
tvum(i,1) = 2.12*sqrt(fc);
else
tvum(i,1) = 2.65*sqrt(fc);
end
if tvu(i,1) <= tvum(i,1)
if geo(j,3)/geo(j,2) <= 1.5
alfac(i,1) = 0.8;
elseif geo(j,3)/geo(j,2) >= 2.0
alfac(i,1) = 0.53;
else
alfac(i,1) = 2.98148 - 1.851852*(geo(j,3)/geo(j,2));
end
%aporte hormigon
%minimo entre 0.53*raiz(fc)*bw*d ; alfac*raiz(fc)*Acv donde d = 0.8Lw
vc(i,1) = min((0.53*sqrt(fc)*Ag(i,1)*0.8),(alfac(i,1)*sqrt(fc)*Ag(i,1)));
if (abs(P(i,1))*1000/0.6)< vc(i,1)
pt(i,1) = 0.0025;
else
pt(i,1) = ((P(i,1)*1000/0.6)-vc(i,1))/(Ag(i,1)*4200);
end
vs(i,1) = Ag(i,1)*pt(i,1)*4200;
vcvs(i,1) = vc(i,1)+vs(i,1);
fuvc(i,1) = abs(V2(i,1)*1000)/vc(i,1);
fuvcs(i,1) = abs(V2(i,1)*1000)/vcvs(i,1);
Avt(i,1) = pt(i,1)*geo(j,1)*100;
Avtr(i,1) = Avt(i,1)/2;
%Requiere confinar si Ht/Lw >= 3
htlw(i,1) = geo(j,4)/geo(j,2);
%pregunta si cumple con condicion
if htlw(i,1) >= 3
okhl{i,1} = 'SI'
else
okhl{i,1} = 'NO'
end
end
De esta parte del código por ejemplo si quiero mostrar los siguientes datos:
- vc
- pt
- vs
- fuvc
- fuvcs
- Avtr
- htlw
- okhl
Que quedaría mostrado en la uitable así
1
2
Vc(ton) pt. vs(ton). fuvc fuvcs. Avtr ht/lw. ht/lw > 3
101.94 0.0025 178.5. 0.0001. 0.00005. 2.5. 0.37. NO
Como podría hacerlo?. Debo juntar todos las variables en una sola como por ejemplo tabla = {vc , pt , vs , fuvc , etc) ?. O hay otra manera?.
Ya tengo dimensionada la uitable con su encabezados y filas, solo me hace falta mostrar los datos y luego al presionar el botón exportarlos.
![Captura_de_pantalla_2018_06_11_a_la_s_16_27_30](https://image.ibb.co/b70ySo/Captura_de_pantalla_2018_06_11_a_la_s_16_27_30.png)
Espero puedan ayudarme con esta parte del problema, y disculpen si no es bien formulada la pregunta. Saludos y gracias de antemano.
Valora esta pregunta
![Me gusta: Está pregunta es útil y esta clara Me gusta: Está pregunta es útil y esta clara](/img/img.png?11.51)
![NO me gusta: Está pregunta no esta clara o no es útil No me gusta: Está pregunta no esta clara o no es útil](/img/img.png?11.51)
0