Matlab - Exportar datos de matlab a Excel

   
Vista:

Exportar datos de matlab a Excel

Publicado por xiomara (23 intervenciones) el 14/01/2008 02:08:00
Hola

Estoy realizando un proyecto en matlab, ya lo tengo realizado en GUI pero necesito exportar dos matrices de matlab a excel en un mismo archivo pero no he podido aun, lo he intentado con xlswrite y con wk1write pero no me deja coger las dos matrices, y tambien lo debo pasar en formato .txt y este lo he realizado con dlmwrite y si me deja llevar las dos matrices pero no tan ordenadas como me gustaría.

Pues la verdad necesito organizar una pareja 96 datos es decir dos matrices [1x96] 1 columna y 96 filas en el formato .xls y para el formato .txt sería conveniente que las dos quedaran en dos filas independientes cada una separadas por un espacio.

La verdad es que apenas he estado aprendiendo a manejar Matlab y no se como realizar muy bien estas acciones que necesito, se que esas funciones me pueden ayudar pero no se trabajarlas muy bien.

Les agradezco de antemano la ayuda que me puedan brindar.
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

RE:Exportar datos de matlab a Excel

Publicado por Kike (304 intervenciones) el 14/01/2008 15:31:44
Esto está en la ayuda de MATLAB.

Example 1 -- Writing Numeric Data to the Default WorksheetWrite a 7-element vector to Microsoft Excel file testdata.xls. By default, the data is written to cells A1 through G1 in the first worksheet in the file: xlswrite('testdata', [12.7 5.02 -98 63.9 0 -.2 56])

Example 2 -- Writing Mixed Data to a Specific WorksheetThis example writes the following mixed text and numeric data to the file tempdata.xls: d = {'Time', 'Temp'; 12 98; 13 99; 14 97};

Call xlswrite, specifying the worksheet labeled Temperatures, and the region within the worksheet to write the data to. The 4-by-2 matrix will be written to the rectangular region that starts at cell E1 in its upper left corner: s = xlswrite('tempdata.xls', d, 'Temperatures', 'E1')
s =
1
The output status s shows that the write operation succeeded. The data appears as shown here in the output file:
Time Temp
12 98
13 99
14 97

Compáralo con lo que escribiste para verificar la sintaxis. Si no hay problemas de sintaxis entonces pon otro post y escribe tu código fuente y los mensajes de error.
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

RE:Exportar datos de matlab a Excel

Publicado por xiomara (23 intervenciones) el 14/01/2008 18:35:02
Hola

Muchas gracias por la ayuda, pero ese mismo codigo que presenta como ejemplo la ayuda de matlab, ya la he realizado y la verdad es que con ese codigo me crea la hoja de excel y me aparece los titulo de cada uno pero no me parece las matrices, aparecen vacías las casillas, y pues en ningun momento me parece mensajes de error.
No se si esto se deba a que las estoy guardando desde un GUI.

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

RE:Exportar datos de matlab a Excel

Publicado por Kike (304 intervenciones) el 14/01/2008 18:52:03
Qué raro, a mí me funciona el ejemplo de MATLAB.
Probemos otra alternativa. Se crea una hoja de excel, pero no se guarda automáticamente, sino que la tienes que guardar tú.

e = actxserver ('Excel.Application'); %ActiveX de Excel
e.Visible = 1; % aparece Excel
eWorkbooks = e.Workbooks; % nuevo libro de Excel
w = eWorkbooks.Add; % se crea el libro
ExcelRange = Range(e,'A1:B1');
set(ExcelRange,'Value', { 'Columna 1', 'Columna 2' } );
ExcelRange = Range(e,'A2:B97');
col1=5*rand(96,1);
col2=10*rand(96,1);
set(ExcelRange,'Value', [ col1, col2 ] );

Si no te gusta y quieres insistir con xlswrite, entonces escribe tu código fuente para que podamos ver dónde está el error.
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

RE:Exportar datos de matlab a Excel

Publicado por xiomara (23 intervenciones) el 15/01/2008 05:13:38
Hola

Mira que despúes de tu primera respuesta insistí con xlswrite y de verdad que ahora si me funciona como quería (y yo que me estaba complicando con wk1write), pero lo que ahora no sé es como ponerle nombre a mis dos columnas eso si lo he intentado hacer y no he podido, por lo pronto lo que si logré fue introducir las dos matrices en una misma hoja de excel, el código que use es el siguiente:

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

global yredval answer1 tval

[file,path] = uiputfile(strcat('Validación_','_Correlacion_',num2str(answer1)...
,datestr(now,'_dd-mmm-yyyy HH-MM-SS_'),'.xls'),'Guardar Validación como');
direccion1=strcat(path,file);

xlswrite (direccion1,tval,'A2:A97')
xlswrite (direccion1,yredval','B2:B97')

Te agradezco tu colaboración.
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

RE:Exportar datos de matlab a Excel

Publicado por Kike (304 intervenciones) el 15/01/2008 15:28:39
Para colocar nombres a las columnas:

xlswrite( 'nombre de archivo', { 'columa 1' , 'columna 2' }, 'A1:B1' );

Cuando los datos que se desean colocar en Excel comienzan en la casilla A1, no es necesario escribir el rango, así que también vale esto:
xlswrite( 'nombre de archivo', { 'columa 1' , 'columna 2' } );
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

RE:Exportar datos de matlab a Excel

Publicado por xiomara (23 intervenciones) el 15/01/2008 19:26:45
Hola Kike

Muchas gracia por tu colaboración, de verdad que me ha sido de gran utilidad.
No sabía que fuera tan fácil adcionarle los nombres a las columnas y ya me funcionó como me lo indicaste.

Pues no se si sea molestia pero mi problkema hora es que debo de igual manera organizarlos en un archivo .txt y esto lo he estado intentando con la función dlmwrite y lo he realizado basandome en el la ayuda de matlab pero no me da igual, la verdad es uq eme gustaría sabe si me puedes ayudar en esto.

Muchas gracias por tu colaboración
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

RE:Exportar datos de matlab a Excel

Publicado por Kike (304 intervenciones) el 15/01/2008 20:36:16
Para escribir un archivo de texto:

identificador = fopen( 'nombre_archivo.txt', 'w' );
if identificador==-1
error(sprintf('El archivo "%s" no pudo abrirse para escritura.','nombre_archivo'));
end

columna1=5*rand(96,1);
columna2=10*rand(96,1);

fwrite(identificador,sprintf('Columna1 Columna2 '),'uchar'); % títulos

for k=1:96
fwrite(identificador,sprintf('%f %f ',columna1(k,1),columna2(k,1)),'uchar'); %datos
end

fclose(identificador);


Conviene abrir el archivo de texto con Wordpad.
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

RE:Exportar datos de matlab a Excel

Publicado por xiomara (23 intervenciones) el 15/01/2008 20:50:06
Hola

Asi tal cual como me enviaste el codigo lo coloque pero me da el siguiente error

??? Error: File: Interfaz.m Line: 708 Column: 57
Unbalanced or unexpected parenthesis or bracket

La linea 708 es la que tiene los asteriscos *******

identificador = fopen( direccion1, 'w' );
if identificador==-1
error(sprintf('El archivo "%s" no pudo abrirse para escritura.',direccion1));
end

% columna1=5*rand(96,1);
% columna2=10*rand(96,1);

fwrite(identificador,sprintf('Tiempo Potencia'),'uchar'); % títulos

for k=1:96

******* fwrite(identificador,sprintf('%f %f ',tval(k,1),yredval'(k,1)),'uchar'); %datos

end

fclose(identificador);


La verdad no se porque sale ese error si se ve que estan bien los parentesis

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

RE:Exportar datos de matlab a Excel

Publicado por Kike (304 intervenciones) el 15/01/2008 21:39:34
El error está en yredval'(k,1). Lo explico con este ejemplo:
>> x=1:5

x =

1 2 3 4 5

>> x'

ans =

1
2
3
4
5

>> x'(2,1)
??? x'(2,1)
|
Error: Unbalanced or misused parentheses or brackets.

>> x(2,1)'
??? Index exceeds matrix dimensions.


Según entiendo, tval es un vector columna, mientras que yredval es un vector fila. Para evitar la transpuesta de yredval:
fwrite(identificador,sprintf('%f %f ',tval(k),yredval(k)),'uchar'); %datos

Puedo evitar poner en los índices la columna para tval, ya que sólo tiene una. Y para yredval puedo evitar poner la fila, ya que sólo tiene una también.

Agrego una para que haya una tabulación entre los datos, y una para que haya salto de línea. De esta manera los datos quedan ordenados como en Excel. En el bloc de notas no se aprecia bien esto, pero sí en Wordpad.
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

RE:Exportar datos de matlab a Excel

Publicado por xiomara (23 intervenciones) el 16/01/2008 06:04:47
Hola

Ahora me aparece el siguiente error que antes no me salia

??? Error: File: Interfaz.m Line: 706 Column: 39
Unexpected MATLAB expression.

es en la siguiente linea

fwrite(identificador,sprintf('Tiempo' 'Potencia','uchar')) %títulos

y matlab me subraya en rojo la palabra 'Potencia' y el antepenultimo parentesis

Gracias por tu ayuda
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

RE:Exportar datos de matlab a Excel

Publicado por Kike (304 intervenciones) el 16/01/2008 15:43:29
El problema es 'Tiempo' 'Potencia', ya que 'Tiempo' es una cadena de texto y 'Potencia' es otra cadena de texto, es decir que es un error de sintaxis de sprintf.

Debería ser 'Tiempo Potencia' si quieres que estén separados por un espacio en blanco. O 'Tiempo Potencia' si quieres que estén separados por una tabulación.

Para ver la sintaxis de sprintf digita help sprintf en la línea de comandos. Es la misma sintaxis que fpritnf, y el fprintf de Matlab es el mismo fprintf del lenguaje C.
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

RE:Exportar datos de matlab a Excel

Publicado por juan (5 intervenciones) el 28/01/2008 13:33:31
saludos,

una pregunta,

Se puede poner nombre también a las filas??
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

RE:Exportar datos de matlab a Excel

Publicado por juan (1 intervención) el 28/01/2008 14:15:02
bueno, así se podría poner nombre a las filas:
d = {'Time', 'Temp'; 12 98; 13 99}
h={'uno';'dos'}

xlswrite('datos',[d],'Temperatures','B1') & xlswrite('datos',[h],'Temperatures','A2')

ahora el problema que tengo esta en

d = {'Time', 'Temp'; 12 98; 13 99}

si tengo una matriz A = [ 12 98; 13 99 ; 14 100; 15 101]

d = {'Time', 'Temp'; A} produce el siguiente error

??? Error using ==> vertcat
All rows in the bracketed expression must have the same
number of columns.

Hay alguna forma de solucionar esto, sin tener que escribir
d = {'Time', 'Temp'; 12 98; 13 99 ; 14 100; 15 101}

gracias de nuevo
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

RE:Exportar datos de matlab a Excel

Publicado por EDDY SANCHEZ (1 intervención) el 04/11/2010 18:24:14
Hola, una pregunta..

y si kisiera colocar nombre a las columnas "colum1, colum2, colum3...colm255"
cómo se haría??

saludos

les dejo mi mail para su respuesta: eddsac@hotmail.com

gracias d antemnano ehh
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

RE:Exportar datos de matlab a Excel

Publicado por Yoruichi (2 intervenciones) el 22/10/2012 05:37:36
Hola bueno para colocar nombre a las columnas debes usar una "table" luego de eso das clic en el boton derecho y buscas donde dice property inspector cuando ya estes aii te vas a donde dice column editable das click donde este una imagen k tiene una tabla y un lapicito y automaticamente te aparece una ventana aiii escribes y vas viendo si se te creo o no el nombre de las columnas
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