Main Content

이 번역 페이지는 최신 내용을 담고 있지 않습니다. 최신 내용을 영문으로 보려면 여기를 클릭하십시오.

CDF 파일로 내보내기

이 예제에서는 MATLAB® CDF 로우 레벨 함수를 사용하여 데이터를 CDF 파일로 내보내는 방법을 보여줍니다. MATLAB 함수는 CDF C API 라이브러리에 포함된 루틴에 대응합니다.

MATLAB CDF 로우 레벨 함수를 효과적으로 사용하려면 CDF C 인터페이스를 잘 알고 있어야 합니다. 또한, CDF 파일은 ASCII 이외의 형식으로 인코딩된 입력값을 지원하지 않습니다. 따라서 변수 이름, 특성 이름, 변수 값, 특성 값은 7비트 ASCII로 인코딩되어야 합니다.

새 CDF 파일 만들기

cdflib.create를 사용하여 my_file.cdf라는 새 CDF 파일을 만듭니다. 이 함수는 CDF 라이브러리 C API 루틴 CDFcreateCDF에 대응합니다. cdflib.create는 파일 ID를 반환합니다.

cdfid = cdflib.create("my_file.cdf");

CDF 파일의 변수 만들기

cdflib.createVar을 사용하여 TimeLatitude라는 변수를 만듭니다. 이 함수는 CDF 라이브러리 C API 루틴 CDFcreatezVar에 대응합니다. cdflib.createVar은 각 변수에 대한 숫자형 식별자를 반환합니다.

time_id = cdflib.createVar(cdfid,"Time","cdf_int4",1,[],true,[]);
lat_id = cdflib.createVar(cdfid,"Latitude","cdf_int2",1,181,true,true);

Image라는 변수를 만듭니다.

dimSizes = [20 10];
image_id = cdflib.createVar(cdfid,"Image","cdf_int4",1, ...
                            dimSizes,true,[true true]);

변수에 쓰기

Time 변수의 첫 번째 레코드와 두 번째 레코드에 데이터를 씁니다. 레코드 번호는 0부터 시작합니다. cdflib.putVarRecordData 함수는 CDF 라이브러리 C API 루틴 CDFputzVarRecordData에 대응합니다.

cdflib.putVarRecordData(cdfid,time_id,0,int32(23))
cdflib.putVarRecordData(cdfid,time_id,1,int32(24))

데이터를 Latitude 변수에 씁니다.

data = int16(-90:90);
recspec = [0 1 1];
dimspec = {0 181 1};
cdflib.hyperPutVarData(cdfid,lat_id,recspec,dimspec,data)

데이터를 Image 변수에 씁니다.

recspec = [0 3 1];
dimspec = {[0 0],[20 10],[1 1]};
data = reshape(int32(0:599),[20 10 3]);
cdflib.hyperPutVarData(cdfid,image_id,recspec,dimspec,data)

전역 특성에 쓰기

cdflib.createAttr을 사용하여 TITLE이라는 전역 특성을 만듭니다. 이 함수는 CDF 라이브러리 C API 루틴 CDFcreateAttr에 대응합니다. cdflib.createAttr은 특성에 대한 숫자형 식별자를 반환합니다. 특성 번호는 0부터 시작합니다.

titleAttrNum = cdflib.createAttr(cdfid,"TITLE","global_scope");

전역 특성의 항목에 값을 씁니다.

cdflib.putAttrEntry(cdfid,titleAttrNum,0,"CDF_CHAR","cdf Title")
cdflib.putAttrEntry(cdfid,titleAttrNum,1,"CDF_CHAR","Author")

변수와 연관된 특성에 쓰기

CDF 파일의 변수와 연관된 특성을 만듭니다.

fieldAttrNum = cdflib.createAttr(cdfid,"FIELDNUM","variable_scope");
unitsAttrNum = cdflib.createAttr(cdfid,"UNITS","variable_scope");

Time 변수의 특성에 값을 씁니다.

cdflib.putAttrEntry(cdfid,fieldAttrNum,time_id, ...
                    "CDF_CHAR","Time of observation")
cdflib.putAttrEntry(cdfid,unitsAttrNum,time_id, ...
                    "CDF_CHAR","Hours")

CDF 파일에 대한 정보 가져오기

cdflib.inquire를 사용하여 파일에 대한 정보를 가져옵니다. 이 함수는 CDF 라이브러리 C API 루틴 CDFinquireCDFCDFgetNumgAttributes에 대응합니다. cdflib.inquire는 데이터 인코딩에 대한 정보와 파일의 변수 개수 및 특성 개수를 포함하는 구조체를 반환합니다.

info = cdflib.inquire(cdfid)
info = struct with fields:
     encoding: 'IBMPC_ENCODING'
     majority: 'ROW_MAJOR'
       maxRec: 2
      numVars: 3
    numvAttrs: 2
    numgAttrs: 1

CDF 파일 닫기

cdflib.close를 사용하여 CDF 파일을 닫습니다. 이 함수는 CDF 라이브러리 C API 루틴 CDFcloseCDF에 대응합니다. CDF 파일을 연 후에 수행한 모든 수정을 파일에 저장하려면 CDF 파일을 닫아야 합니다.

cdflib.close(cdfid)

참고 항목

cdflib

외부 웹사이트