본문 바로가기
IT/MATLAB

[dlmwrite 함수] excel로 저장할때 데이터가 커서 오류가 날 경우

by Jang HyunWoong 2014. 12. 19.

Excel returned: Error: Object returned error code: 0x800A03EC. 오류!

 

이미지 프로세싱을 하면서 엑셀로 파일을 저장하고 싶었다. 

xlswrite() 라는 함수를 사용해서 간단하게 저장했었는데

이미지 프로세싱같은 큰 데이터를 저장하려하면 에러가 났다. 

excel help를 보면 엑셀에서 데이터를 저장할 때 크기 제한이 있기 때문이였다. 

 

이런 저런 방법을 찾아보다가

 

dlmwrite 함수를 발견했다. 

 

Write a matrix to an ASCII delimited file

 

아스키로 규정된 파일 매트릭스를 저장하는 함수였다. 

 

정의를 보겠다.

 

Syntax 

    <pre>dlmwrite(filename,M,delimiter) dlmwrite(filename,M,delimiter,R,C) </pre>

Description 

dlmwrite(filename,M,delimiter) writes matrix M into an ASCII-format file, using delimiter to separate matrix elements. 

 

 The data is written to the upper left-most cell of the spreadsheet filename. A comma (,) is the default delimiter. Use '\t' to produce tab-delimited files.

 

dlmwrite(filename,M,delimiter,R,C) writes matrix A into an ASCII-format file, using delimiter to separate matrix elements. The data is written to the spreadsheet filename, starting at spreadsheet cell R and C, where R is the row offset and C is the column offset. 

R and C are zero based so that R=0, C=0 specifies the first value in the file, which is the upper left corner.

 

Remarks 

The resulting file is readable by spreadsheet programs.

 

이것은 매트랩 'help dlmwrite' 를 입력했을 경우 나오는 예제이다. 

 

EXAMPLES:

 

    DLMWRITE('abc.dat',M,'delimiter',';','roffset',5,'coffset',6,...

    'precision',4) writes matrix M to row offset 5, column offset 6, in

    file abc.dat using ; as the delimiter between matrix elements.  The

    numeric precision is of the data is set to 4 significant decimal

    digits.

 

    DLMWRITE('example.dat',M,'-append') appends matrix M to the end of 

    the file example.dat. By default append mode is off, i.e. DLMWRITE

    overwrites the existing file.

 

    DLMWRITE('data.dat',M,'delimiter','\t','precision',6) writes M to file

    'data.dat' with elements delimited by the tab character, using a precision

    of 6 significant digits.

    

    DLMWRITE('file.txt',M,'delimiter','\t','precision','%.6f') writes M

    to file file.txt with elements delimited by the tab character, using a

    precision of 6 decimal places. 

 

    DLMWRITE('example2.dat',M,'newline','pc') writes M to file

    example2.dat, using the conventional line terminator for the PC

 

    platform.


많은 좋은 예가 있다. 


여기서 내가 필요한 것은 그냥 간단하게 있는 그대로 수치를 엑셀로 나타내는 것

나의 데이터의 크기는 12000x2190으로 굉장히 큰 데이터이다. 


>> dlmwrite('test3.xls', hists, '\t')


를 사용하므로써 엑셀로 저장할 수 있게 되었다. 

'\t' 이것은 띄어쓰기로 배열을 나누겠다는 뜻.

hists는 나의 변수 이름

test3.xls는 엑셀저장 파일 이름


엑셀로 나타내고자 할때 쓰일 수 있겠다. 

반응형

'IT > MATLAB' 카테고리의 다른 글

bwperim() 함수  (0) 2014.12.19
linspace(a, b, n) 함수  (0) 2014.12.19
외부 데이터(파일) 불러오기와 저장하기  (0) 2014.12.19
randperm 함수  (0) 2014.12.19
cellfun 함수  (0) 2014.12.19