Matlab - Visualizar tabla de datos con títulos y de forma alineada

   
Vista:

Visualizar tabla de datos con títulos y de forma alineada

Publicado por Carlos (60 intervenciones) el 09/05/2011 10:07:11
Hola a todos,
con relación a mi última pregunta necesito saber si hay alguna forma de crear tablas de datos con tíitulos para poder visualizar en matlab.

Si introduzco el título de una variable (título de una columna de una tabla) en la primera celda de cada matriz, interpreta este título string como si fuera otra matriz. Al introducir strings en matrices hace matrices en función del número de carácteres del string.

Lo que busco es hacer una tabla por el estilo:

Tensión Intensidad
v1 I1
V2 I2

y que a la vez salgan centrados, los títulos y los valores (aunque eso si se muestra como forma de matriz creo que ya está solucionado).


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

Visualizar tabla de datos con títulos y de forma alineada

Publicado por JOSE JEREMIAS CABALLERO jjcc94@hotmail.com (3440 intervenciones) el 09/05/2011 15:43:37
HOla Carlos.
Utiliza la funcion fprintf() de matlab.
SU SINTAXIS ES LA SIGUIENTE:
fprintf(‘formato’,arg1,arg2,...,argn) La ventaja es que dentro del formato se puede
incluir caracteres especiales.
Caracteres especiales en Matlab:
Código: función
‘%c’ para carácter
‘%d’ para numero entero
‘%f’ para número real
‘%s’ para cadena
‘%u’ para número entero positivo
‘%x’ para salida hexadecimal
‘%o’ para salida octal
‘\n’ para salto de línea
‘\t’ para tabulación
‘\b’ para retroceso (backspace)
‘\\’ para imprimir ‘\’
‘%%’ para imprimir ‘%’


Saludos.
JOSE JEREMIAS CABALLERO
ASESOR DE PROYECTOS CON MATLAB
PROFESOR DE METODOS NUMERICOS CON MATLAB
PROGRAMADOR EN MATLAB
jjcc94@hotmail.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

Visualizar tabla de datos con títulos y de forma alineada

Publicado por Carlos (60 intervenciones) el 10/05/2011 10:28:28
Hola Jose, gracias por contestar otra vez :D

De esta manera solo me aparecen dos pequeños problemas. El primero es que los números complejos no se representan con el comando fprintf, tan solo la parte real, pero lo soluciono diviéndolo a su vez en dos partes (nuevas variables) y haciendo un fprintf de estas por separado y juntándolas con el signo de la parte real (o lo muestro por separado con ángulo y argumento). Hasta aquí todo bien.

El "problemilla" es que para mostrar el "título de la tabla" vendría a ser esto:

fprintf(' V2f[V]'),fprintf('\t'),fprintf(' I2f[A]'),fprintf('\t'),fprintf(' cosphi2'),fprintf('\t'),fprintf('S2[MVA]'),fprintf('\t'),fprintf(' V1f[V]'),fprintf('\t'),fprintf(' I1f[A]'),fprintf('\t'),fprintf(' cosphi1'),fprintf('\t'),fprintf(' S1[MVA]'),fprintf('\t'),fprintf(' cdt[V]'),fprintf('\t'), fprintf('cdt[%%]');

Como ves hay algunos espacios, ya que es aquí donde no me queda bien alineado con la tabla que viene a continuación:

for k=1:-0.05:0.8
fprintf('\n');
fprintf('%7.4f\t',double(U*1000/sqrt(3)));fprintf(' %7.4f\t',double(I));fprintf(' %7.4f\t', double(cosphi));fprintf('%7.4f\t',double(S));fprintf('%7.4f\t',double(V1));
end

Los valores del bucle for me parecen perfectamente alineados entre sí, tanto en columnas como en filas, pero no se me alinea con el "título", por lo que tengo que hacer el interespaciado a ojo, hacienod prueba y error y mirando que quede bien.

De momento lo dejo así, a mano, pero si conoces una forma de hacerlo mejor estaría muy bien :)
De todas formas muchas gracias de nuevo. Eres muy bueno resolviendo dudas ^^
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

Visualizar tabla de datos con títulos y de forma alineada

Publicado por JOSE JEREMIAS CABALLERO jjcc94@hotmail.com (3440 intervenciones) el 10/05/2011 14:54:28
HOla Carlos.

Ejecuta el programa
%====================================================
clear;
S=100; U=10; I=5.7733; V1=100;
fprintf(' V2f[V] I2f[A] cosphi2 S2[MVA] V1f[V] I1f[A] cosphi1 S1[MVA] cdt[V] cdt[%%]\n');
for k=1:-0.05:0.8
fprintf('\n');
fprintf('%8.4f %8.4f %8.4f %8.4f %8.4f\n',double(U*1000/sqrt(3)),double(I),cos(pi),double(S),double(V1));
end
%=================================================

>> carlosfprintf
V2f[V] I2f[A] cosphi2 S2[MVA] V1f[V] I1f[A] cosphi1 S1[MVA] cdt[V] cdt[%]

5773.5027 5.7733 -1.0000 100.0000 100.0000

5773.5027 5.7733 -1.0000 100.0000 100.0000

5773.5027 5.7733 -1.0000 100.0000 100.0000

5773.5027 5.7733 -1.0000 100.0000 100.0000

5773.5027 5.7733 -1.0000 100.0000 100.0000


Saludos.
JOSE JEREMIAS CABALLERO
ASESOR DE PROYECTOS CON MATLAB
PROFESOR DE METODOS NUMERICOS CON MATLAB
PROGRAMADOR EN MATLAB
jjcc94@hotmail.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

Visualizar tabla de datos con títulos y de forma alineada

Publicado por manuel pizaña manjg_gp915@hotmail.com (1 intervención) el 07/08/2011 10:43:14
Hola que tal lo que pasa que me interesa mucho este tema pero visto desde otro punto, quiero hacer lo mismo de visualizar tablas con titulos y de forma ordenada pero en un GUI mostrando la tabla resultante de un bucle while en un list box o en un static text como puedo hacer eso, lo que he investigado es que se usa la instruccion sprintf pero no se como me podrian ayudar??
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

Visualizar tabla de datos con títulos y de forma alineada

Publicado por JOSE JEREMIAS CABALLERO jjcc94@hotmail.com (3440 intervenciones) el 07/08/2011 15:15:56
hola.
Estoy asumiendo que tienes ciertos conocimientos de MATLAB GUIDE. Por esa razon te copio el codigo del programa en el foro, ya que este tipo de archivos tiene dos partes, archivo.m y archivo.fig.
lo que esta abajo es el archivo.m y el archivo.fig no se puede copiar porque es una ventana de grafica. Apartir de aqui, puedes hacer para lo tu quieres.

%==============================
function varargout = listboxm(varargin)
clc
gui_Singleton = 1;
gui_State = struct('gui_Name', mfilename, ...
'gui_Singleton', gui_Singleton, ...
'gui_OpeningFcn', @listboxm_OpeningFcn, ...
'gui_OutputFcn', @listboxm_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 listboxm_OpeningFcn(hObject, eventdata, handles, varargin)
handles.output = hObject;
guidata(hObject, handles);

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

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


function iteraciones_Callback(hObject, eventdata, handles)
a='Iter.';
M=rand(1,4);
for i=1:length(M)
a=strcat(a,'|',num2str(M(i)));
end
set(handles.Iterac,'String',a);
%===============================


Saludos.
JOSE JEREMIAS CABALLERO
ASESOR DE PROYECTOS CON MATLAB
PROFESOR DE METODOS NUMERICOS CON MATLAB
PROGRAMADOR MATLAB
jjcc94@hotmail.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

Visualizar tabla en interfaz creada en GUIDE y que me permita capturar datos en sus columnas

Publicado por Jorge (1 intervención) el 19/02/2015 02:36:26
Hola, lo que estoy intentando hacer crear una tabla que se muestre en la interface hecha en GUIDE, con sus respectivos títulos de columnas, y que en cada celda le pueda yo capturar datos que a su vez los emplearé para efectuar ciertos cálculos cuyos resultados deben mostrarse en las celdas de otra tabla que a su vez también debe visualizarse.
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