Get Started Writing TDMS File
This example shows how to write data from MATLAB® to a TDMS file.
For this example, the file weather.mat contains a regional weather report from 3 December 1998 to 30 Nov 2000.
Set Up Workspace
Load the data to be written to a TDMS file, and define the TDMS file, channel group, and channel names. Later you can add some custom attributes, such as title and units, to the TDMS file.
load("weather.mat"); fileName = "weather.tdms"; group = "ChannelGroup1"; channel = "T_min"; whos
Name Size Bytes Class Attributes channel 1x1 150 string fileName 1x1 166 string group 1x1 166 string weather 729x19 116009 table
The variable weather is a table that holds the data.
Write Table of Data to New TDMS File
Use the tdmswrite function to write the table of weather data to a TDMS file from MATLAB.
tdmswrite(fileName, weather)
Inspect the contents of the file using tdmsinfo.
info = tdmsinfo(fileName)
info =
TdmsInfo with properties:
Path: "C:\Users\rkoshy\OneDrive - MathWorks\Documents\MATLAB\ExampleManager\rkoshy.ExampleManager\daq-ex72949341\weather.tdms"
Name: "weather.tdms"
Description: ""
Title: "Weather Report"
Author: ""
Version: "2.0"
ChannelList: [38×8 table]
View channel groups and channels in the TDMS file.
info.ChannelList
ans=38×8 table
ChannelGroupNumber ChannelGroupName ChannelGroupDescription ChannelName ChannelDescription Unit DataType NumSamples
__________________ ________________ _______________________ ________________________ __________________ ____ ___________ __________
1 "ChannelGroup1" "" "Date" "" "" "Timestamp" 729
1 "ChannelGroup1" "" "T_min" "" "°C" "Double" 729
1 "ChannelGroup1" "" "T_max" "" "" "Double" 729
1 "ChannelGroup1" "" "Precipitation" "" "" "Double" 729
1 "ChannelGroup1" "" "T_6h" "" "" "Double" 729
1 "ChannelGroup1" "" "Index" "" "" "Double" 729
1 "ChannelGroup1" "" "T_min_Lin" "" "" "Double" 729
1 "ChannelGroup1" "" "T_max_Lin" "" "" "Double" 729
1 "ChannelGroup1" "" "T_mittel_Lin" "" "" "Double" 729
1 "ChannelGroup1" "" "AvergeMinimumTemp" "" "" "Double" 729
1 "ChannelGroup1" "" "AverageMaximumTemp" "" "" "Double" 729
1 "ChannelGroup1" "" "AverageTemp" "" "" "Double" 729
1 "ChannelGroup1" "" "RealTemperatureDiff" "" "" "Double" 729
1 "ChannelGroup1" "" "AverageTemperatureDiff" "" "" "Double" 729
1 "ChannelGroup1" "" "Month" "" "" "Timestamp" 729
1 "ChannelGroup1" "" "Tm_min" "" "" "Double" 729
⋮
Use tdmsread to examine the data written into the new file.
rData = tdmsread(fileName); stackedplot(rData)

Inspect file default properties using tdmsreadprop.
tdmsreadprop(fileName)
ans=1×5 table
name description title author timestamp
______________ ___________ ________________ ______ _____________________________
"weather.tdms" "" "Weather Report" "" 2022-04-21 19:25:30.357063999
Inspect channel group default properties using tdmsreadprop.
tdmsreadprop(fileName, ChannelGroupName=group)
ans=1×2 table
name description
_______________ ___________
"ChannelGroup1" ""
Inspect channel default properties using tdmsreadprop.
tdmsreadprop(fileName, ChannelGroupName=group, ChannelName=channel)
ans=1×3 table
name description unit_string
_______ ___________ ___________
"T_min" "" "°C"
Modify TDMS File Metadata
To update the file properties, channel group properties, or channel properties of an existing TDMS file, use tdmswriteprop.
You can inspect the updated properties using tdmsreadprop.
Update the file property Title.
tdmswriteprop(fileName, "title", "Weather Report") tdmsreadprop(fileName)
ans=1×5 table
name description title author timestamp
______________ ___________ ________________ ______ _____________________________
"weather.tdms" "" "Weather Report" "" 2022-04-21 19:25:30.357063999
Also add a custom file property called timestamp, and set its value to the current date and time.
tdmswriteprop(fileName, "timestamp", datetime("now")) tdmsreadprop(fileName)
ans=1×5 table
name description title author timestamp
______________ ___________ ________________ ______ _____________________________
"weather.tdms" "" "Weather Report" "" 2022-04-21 19:34:37.310101999
Finally, update the units of a channel, which is specified by the default property unit_string.
tdmswriteprop(fileName, "unit_string", "°C", ChannelGroupName=group, ChannelName=channel) tdmsreadprop(fileName, ChannelGroupName=group, ChannelName=channel)
ans=1×3 table
name description unit_string
_______ ___________ ___________
"T_min" "" "°C"