Excel returned: Error: Object returned error code: 0x800A03EC. 오류!
이미지 프로세싱을 하면서 엑셀로 파일을 저장하고 싶었다.
xlswrite() 라는 함수를 사용해서 간단하게 저장했었는데
이미지 프로세싱같은 큰 데이터를 저장하려하면 에러가 났다.
excel help를 보면 엑셀에서 데이터를 저장할 때 크기 제한이 있기 때문이였다.
이런 저런 방법을 찾아보다가
dlmwrite 함수를 발견했다.
Write a matrix to an ASCII delimited file
아스키로 규정된 파일 매트릭스를 저장하는 함수였다.
정의를 보겠다.
Syntax
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 |