주요 콘텐츠

이 페이지는 기계 번역을 사용하여 번역되었습니다. 영어 원문을 보려면 여기를 클릭하십시오.

여러 TDMS 파일을 MATLAB으로 불러오기

이 예제는 TDMS 데이터 저장소를 사용하여 여러 TDMS 파일의 데이터를 MATLAB®로 읽어와 분석하는 방법을 보여줍니다.

이 예제와 함께 제공되는 TDMS 파일에는 트리거를 기반으로 캡처된 진폭 및 위상에 대한 사인파 측정 데이터가 포함되어 있습니다.

여러 TDMS 파일을 한 번에 읽기

tdmsDatastore 함수는 datastore 객체를 생성하며, 이를 통해 폴더 내의 모든 TDMS 파일을 하나의 데이터 세트로 취급할 수 있습니다.

folderName = fullfile(pwd,"Trigger");
ds = tdmsDatastore(folderName);

데이터 세트에 포함된 모든 채널을 검토하십시오.

ds.ChannelList
ans=2×8 table
    ChannelGroupNumber    ChannelGroupName    ChannelGroupDescription       ChannelName       ChannelDescription    Unit    DataType    NumSamples
    __________________    ________________    _______________________    _________________    __________________    ____    ________    __________

            1                "Trigger"                  ""               "Amplitude sweep"            ""             ""     "Double"       500    
            1                "Trigger"                  ""               "Phase sweep"                ""             ""     "Double"       500    

데이터저장소에 있는 모든 TDMS 파일은 동일한 채널 그룹과 채널을 가져야 합니다. 채널 목록에 표시된 NumSamples 값은 데이터저장소에 있는 첫 번째 파일의 값입니다.

readall 함수는 데이터저장소에서 모든 데이터를 가져와 MATLAB에 저장합니다. 첫 번째 채널 그룹의 데이터를 읽어와 그래프로 표시하십시오.

data = readall(ds);
stackedplot(data{1})

Amplitude and Phase sweep plot

데이터저장소 TDMS 파일을 하나씩 읽기

또한 데이터저장소에 있는 데이터를 파일 단위로 하나씩 분석할 수도 있습니다. TDMS 데이터저장소를 읽기 크기 "file"로 재정의하십시오.

ds = tdmsDatastore(folderName, readSize="file");

데이터저장소를 순회하며 각 TDMS 파일에서 데이터를 읽어옵니다. read 함수는 설정된 읽기 크기를 사용합니다. 각 파일에 대해 Amplitude sweep 채널에서 최대값과 최소값을 찾아, 누적 최대값 및 최소값과 비교하십시오.

maxAmplitude = 0;
minAmplitude = 0;
while(hasdata(ds))
    data = read(ds);
    maxAmplitude = max(maxAmplitude, max(data{1}.("Amplitude sweep")));
    minAmplitude = min(minAmplitude, min(data{1}.("Amplitude sweep"))); 
end

전체 데이터 세트를 모두 읽은 후, 누적 최대 및 최소 진폭을 확인하십시오.

maxAmplitude
maxAmplitude = 
6.9998
minAmplitude
minAmplitude = 
-6.9982

참고 항목

함수

도움말 항목