主要内容

从MDF-Files读取数据

这个例子向您展示了如何从一个MDF-file读通道数据。

查看文件详细信息

查看一个MDF-file使用的元数据mdfInfo通过指定文件名。

fileInfo = mdfInfo (“VehicleData.mf4”)
fileInfo = MDFInfo属性:文件细节名称:“VehicleData。mf4”路径:“/ tmp / Bdoc23a_2213998_1547508 / tpbdc9ff2c vnt-ex94427230 / VehicleData。mf4”作者:”“部门:“”项目:“”主题:“”评论:“MDF文件示例文件展示工作流的写作。”Version: "4.10" InitialTimestamp: 2022-01-20 01:22:34.000000000 Creator Details ProgramIdentifier: "MATLAB" CreatorVendorName: "The MathWorks, Inc." CreatorToolName: "MATLAB" CreatorToolVersion: "9.12.0.1846952 (R2022a) Prerelease Update 1" CreatorUserName: "" CreatorComment: "" File Contents Attachment: [1x7 table] ChannelGroupCount: 2

从MDF-File读取所有数据

最简单的方法从一个MDF-file读取所有数据调用mdfRead函数只有文件名。每个时间表代表数据读取相应的通道组。

dataAll = mdfRead (“VehicleData.mf4”)
dataAll =2×1单元阵列{751×8时间表}{92033 x2时间表}
dataAll {1}
ans =751×8的时间表时间EngineRPM刹车油门装置ImpellerTorque OutputTorque TransmissionRPM VehicleSpeed ________ _____ _____ ________ _______售予__ * * * _______ 0秒1000 0 60 1 52.919 - 282.65 0 0 59.946 1383.3 0.04秒0 1 0 101.4 532.63 13.593 0.30047 0.08秒1685.4 59.893 1 150.76 776.41 35.847 0.7924 0.12秒1907.2 0 59.839 59.785 1 193.42 973.15 65.768 1.4538 0.16秒2062 0 1 227.02 1117.6 101.53 2.2443 0.2秒2161.2 0 1 251.11 1212.8 141.45 3.1268 59.732 59.678 2221.4 0.24秒0 1 0 267.24 1264.3 183.86 4.0644 0.28秒2257.2 59.624 1 276.35 1271.2 227.25 59.57 5.0234 0.32秒2278.7 0 1 281.99 1259.5 270.52 5.9798 0.36秒2292.4 0 0 2305.1 59.517 283.39 1229 313.08 6.9208 0.4秒59.463 1 283.29 1193.4 354.43 7.8348 0.44秒2317.4 59.409 - 1 0 0 282.91 1156.6 394.58 8.7222 0.48秒2330.5 59.356 1 281.84 1112.8 433.27 9.5775 0.52秒2344.5 59.302 - 1 0 0 281.19 1073.1 470.53 10.401 0.56秒2359.1 59.248 1 279.77 1032.9 506.43 59.195 11.195 0.6秒2376.4 0 1 277.89 993.97 540.92 11.957⋮
dataAll {2}
ans =92033×2时间表时间气流_________ ________ FuelRate * * * 0秒17.294 1.209 0.00056199秒17.263 1.209 17.112 1.209 0.01 0.0033719 16.776 1.1729 16.316 1.1409 0.03 0.02 15.907 1.1124 15.546 1.0873 0.05 0.04 15.228 - 1.0652 15.075 1.0652 0.055328 0.055328 15.075 1.0652 0.055328秒15.075 1.0652 0.06秒14.949 1.0458 14.832 1.0458 0.07 0.064672 14.707 1.0289 14.497 1.0143 0.09 0.08 14.317 1.0019⋮

从选择读取数据通道组

读取数据只能从选定的通道组,指定选项GroupNumber目标通道组编号。从通道读取数据组1只。

dataChanGrp1 = mdfRead (“VehicleData.mf4”GroupNumber = 1)
dataChanGrp1 =1 x1单元阵列{751×8时间表}
dataChanGrp1 {1}
ans =751×8的时间表时间EngineRPM刹车油门装置ImpellerTorque OutputTorque TransmissionRPM VehicleSpeed ________ _____ _____ ________ _______售予__ * * * _______ 0秒1000 0 60 1 52.919 - 282.65 0 0 59.946 1383.3 0.04秒0 1 0 101.4 532.63 13.593 0.30047 0.08秒1685.4 59.893 1 150.76 776.41 35.847 0.7924 0.12秒1907.2 0 59.839 59.785 1 193.42 973.15 65.768 1.4538 0.16秒2062 0 1 227.02 1117.6 101.53 2.2443 0.2秒2161.2 0 1 251.11 1212.8 141.45 3.1268 59.732 59.678 2221.4 0.24秒0 1 0 267.24 1264.3 183.86 4.0644 0.28秒2257.2 59.624 1 276.35 1271.2 227.25 59.57 5.0234 0.32秒2278.7 0 1 281.99 1259.5 270.52 5.9798 0.36秒2292.4 0 0 2305.1 59.517 283.39 1229 313.08 6.9208 0.4秒59.463 1 283.29 1193.4 354.43 7.8348 0.44秒2317.4 59.409 - 1 0 0 282.91 1156.6 394.58 8.7222 0.48秒2330.5 59.356 1 281.84 1112.8 433.27 9.5775 0.52秒2344.5 59.302 - 1 0 0 281.19 1073.1 470.53 10.401 0.56秒2359.1 59.248 1 279.77 1032.9 506.43 59.195 11.195 0.6秒2376.4 0 1 277.89 993.97 540.92 11.957⋮

从通道读取数据匹配指定的名字

准确地读取数据从已知通道名称,指定选项通道确切的通道名称。从通道读取数据命名为“刹车”,“节流”和“FuelRate”。

dataChanExact = mdfRead (“VehicleData.mf4”频道= (“制动”,“节流”,“FuelRate”])
dataChanExact =2×1单元阵列{751 x2时间表}{92033}x1的时间表

注意,返回数据在两个时间表。这是因为渠道“制动”和“节流”通道组1中存在,而通道“FuelRate”是出现在通道组2。

dataChanExact {1}
ans =751×2时间表时间刹车油门________ _____ ________ 60 0秒0 0 59.946 0.08 0.04 59.893 - 0.12秒0 59.839 0.16秒0 59.785 0.2秒0 59.732 0.24秒0 59.678 0.28秒0 59.624 0.32秒0 59.57 0.36秒0 59.517 0.4秒0 59.463 0.44秒0 59.409 0.48秒0 59.356 0.52秒0 59.302 0.56秒0 59.248 0.6秒⋮59.195 0
dataChanExact {2}
ans =92033×1的时间表时间________ FuelRate * * * 0秒1.209 0.00056199秒1.209 - 0.0033719秒1.209 0.01秒1.1729 0.02秒1.1409 0.03秒1.1124 0.04秒1.0873 0.05秒1.0652 0.055328秒1.0652 0.055328秒1.0652 0.055328秒1.0652 0.06秒1.0458 0.064672秒1.0458 0.07秒1.0289 0.08秒1.0143 0.09秒1.0019⋮

阅读部分的数据通道名称,指定选项通道使用通配符。从通道读取数据的名字包含子字符串“扭矩”。

dataChanWildcard = mdfRead (“VehicleData.mf4”频道=“*扭矩*”)
dataChanWildcard =2×1单元阵列{751 x2时间表}}{0 x0时间表

注意,时间表在指数2是空的。这是因为所有渠道匹配“*扭矩*”出现在通道组1。

dataChanWildcard {1}
ans =751×2时间表_______时间ImpellerTorque OutputTorque ________ * * * 0秒52.919 282.65 0.04秒101.4 532.63 150.76 776.41 0.12 0.08 193.42 973.15 227.02 1117.6 0.2 0.16 251.11 1212.8 267.24 1264.3 0.28 0.24 276.35 1271.2 281.99 1259.5 0.36 0.32 283.39 1229 283.29 1193.4 0.44 0.4 282.91 1156.6 281.84 1112.8 0.52 0.48 281.19 1073.1 279.77 1032.9 0.6 0.56 277.89 993.97⋮

用表从通道读取数据

您可以使用mdfChannelInfo过滤为渠道目标,然后使用获得的表mdfRead只有读的上市渠道。

首先,找到通道名称匹配“* RPM”或“气流”使用mdfChannelInfo

chanInfo = mdfChannelInfo (“VehicleData.mf4”频道= (“* RPM”,“气流”])
chanInfo =表3×13名字GroupNumber GroupNumSamples GroupAcquisitionName GroupComment GroupSourceName GroupSourcePath DisplayName单位评论ExtendedNamePrefix SourceName路径_________________ ___________售予____________________ ___________________________________________________________________________售予__ ___________ _____________售予………………“气流”2 92033 <定义>气体动力学的仿真引擎。<定义> <定义>”“g / s <定义> <定义> <定义> <定义>“EngineRPM”751 <定义>模拟在通过操纵一个自动变速器控制器。<定义> <定义>”“rpm <定义> <定义> <定义> <定义>“TransmissionRPM”751 <定义>模拟在通过操纵一个自动变速器控制器。<定义> <定义>”“rpm <定义> <定义> <定义> <定义>

使用mdfRead函数通过指定可选的参数通道返回的表mdfChannelInfo。这从三个通道中读取数据中列出chanInfo表。

dataChanTable = mdfRead (“VehicleData.mf4”、通道= chanInfo)
dataChanTable =2×1单元阵列{751 x2时间表}{92033}x1的时间表
dataChanTable {1}
ans =751×2时间表时间EngineRPM TransmissionRPM ________ _____售予0秒1000 0 1383.3 13.593 0.08 0.04 1685.4 35.847 1907.2 65.768 0.16 0.12 2062 101.53 2161.2 141.45 0.24 0.2 2221.4 183.86 2257.2 227.25 0.32 0.28 2278.7 270.52 2292.4 313.08 0.4 0.36 2305.1 354.43 2317.4 394.58 0.48 0.44 2330.5 433.27 2344.5 470.53 0.56 0.52 2359.1 506.43 0.6秒2376.4 540.92⋮
dataChanTable {2}
ans =92033×1的时间表_________次气流* * * 0秒17.294 0.00056199秒17.263 - 0.0033719秒17.112 0.01秒16.776 0.02秒16.316 0.03秒15.907 0.04秒15.546 0.05秒15.228 0.055328秒15.075 0.055328秒15.075 0.055328秒15.075 0.06秒14.949 0.064672秒14.832 0.07秒14.707 0.08秒14.497 0.09秒14.317⋮

指数范围内读取数据

阅读只有一个子集的数据在指定的索引范围,指定选项IndexRange提供开始和结束索引。读取数据从两个通道组指数101年和105年之间。

dataByIndex = mdfRead (“VehicleData.mf4”,IndexRange = (101、105))
dataByIndex =2×1单元阵列{5×8时间表}{5}x2的时间表
dataByIndex {1}
ans =5×8的时间表时间EngineRPM刹车油门装置ImpellerTorque OutputTorque TransmissionRPM VehicleSpeed ________ _____ _____ ________ _______售予__ * * * _______ 4秒3138.5 54.631 - 2 0 235.21 340.98 1964.5 43.427 4.04 3151.6秒的0 234.57 340.09 1975.5 43.668 4.08秒3164.6 54.577 - 2 2 0 54.523 233.93 339.2 1986.3 43.908 4.12秒3177.6 54.47 - 2 0 0 54.416 233.29 338.31 1997.2 44.148 4.16秒3190.4 232.65 - 337.43 2008 44.387
dataByIndex {2}
ans =5×2时间表时间气流FuelRate ________ ________ 0.89秒19.421 1.3439 19.492 1.3486 0.91 0.9 19.562 1.3532 19.631 1.3577 0.93 0.92 19.699 - 1.3622

读取数据时间范围之内

阅读只有一个子集的数据在指定的时间范围内,指定选项TimeRange提供开始和结束时间。读取数据之间的通道组1.5秒和2秒。

dataByTime = mdfRead (“VehicleData.mf4”TimeRange =秒([1.5,2]))
dataByTime =2×1单元阵列{13×8时间表}{51 x2时间表}
dataByTime {1}
ans =13×8的时间表时间EngineRPM刹车油门装置ImpellerTorque OutputTorque TransmissionRPM VehicleSpeed ________ _____ _____ ________ _______售予__ * * * _______ 1.52秒1 2969 0 57.96 240.51 574.51 1106.7 57.906 24.463 1.56秒3006.7 0 1 238.7 570.4 1125.9 24.887 1.6秒3044.4 0 1 237.26 567.2 1144.9 25.309 57.852 57.799 3082.4 1.64秒0 1 0 235.33 562.79 1163.8 25.727 1.68秒3120.3 57.745 1 233.87 559.47 1182.6 26.142 1.72秒3157.9 0 57.691 57.638 1 232.51 556.4 1201.3 26.555 1.76秒3195 0 1 231.18 553.41 1219.9 57.584 26.966 1.8秒3232 0 0 510.18 1093.3 1238.3 27.374 1.84秒2899.9 384.51 755.8 1268.9 28.048 1.88秒2742.1 57.53 - 2 2 0 57.477 327.29 607.68 1291.4 28.548 1.92秒2665.8 0 57.423 299 57.369 2631.3 534.91 1310.4 28.967 1.96秒0 0 2 2秒29.346 284.28 496.35 1327.5 2617.6 57.315 276.76 475.14 1343.7至29.702点
dataByTime {2}
ans =51×2时间表时间气流FuelRate ________ ________ 1.5秒22.414 1.5385 22.446 1.5405 1.52 1.51 22.477 1.5425 22.508 1.5445 1.54 1.53 22.539 1.5464 22.569 1.5484 1.56 1.55 22.598 1.5502 22.628 1.5521 1.58 1.57 22.656 1.554 22.685 1.5558 1.6 1.59 22.713 1.5576 22.741 1.5593 1.62 1.61 22.768 1.5611 22.795 1.5628 1.64 1.63 22.822 1.5645 1.65秒22.849 1.5662⋮

读数据与绝对的时间戳

返回绝对时间戳datetime考虑初始MDF-file的时间戳,指定选项AbsoluteTime作为真正的当调用mdfRead

dataAbsTime = mdfRead (“VehicleData.mf4”AbsoluteTime = true)
dataAbsTime =2×1单元阵列{751×8时间表}{92033 x2时间表}
dataAbsTime {1}
ans =751×8的时间表时间EngineRPM刹车油门装置ImpellerTorque OutputTorque TransmissionRPM VehicleSpeed _____________________________ _____ _____ ________ _______售予__ * * * _______ 1000 01:22:34.000000000 2022-01-20 0 60 1 52.919 282.65 59.946 0 0 2022-01-20 01:22:34.040000000 1383.3 0 1 101.4 59.893 1685.4 532.63 13.593 0.30047 2022-01-20 01:22:34.080000000 0 1 150.76 776.41 35.847 0.7924 2022-01-20 01:22:34.120000000 1907.2 0 59.839 59.785 1 193.42 973.15 65.768 1.4538 2022-01-20 01:22:34.160000000 2062 0 1 227.02 59.732 2161.2 1117.6 101.53 2.2443 2022-01-20 01:22:34.200000000 0 1 251.11 59.678 2221.4 1212.8 141.45 3.1268 2022-01-20 01:22:34.240000000 0 1 1 267.24 1264.3 183.86 4.0644 2022-01-20 01:22:34.280000000 2257.2 0 59.624 276.35 59.57 2278.7 1271.2 227.25 5.0234 2022-01-20 01:22:34.320000000 0 1 281.99 1259.5 270.52 5.9798 2022-01-20 01:22:34.360000000 2292.4 0 59.517 283.39 1229 313.08 59.463 6.9208 2022-01-20 01:22:34.400000000 2305.1 0 1 283.29 59.409 2317.4 1193.4 354.43 7.8348 2022-01-20 01:22:34.440000000 0 1 1 282.91 1156.6 394.58 8.7222 2022-01-20 01:22:34.480000000 2330.5 0 59.356 281.84 59.302 2344.5 1112.8 433.27 9.5775 2022-01-20 01:22:34.520000000 0 1 281.19 59.248 2359.1 1073.1 470.53 10.401 2022-01-20 01:22:34.560000000 0 1 279.77 59.195 2376.4 1032.9 506.43 11.195 2022-01-20 01:22:34.600000000 0 1 277.89 993.97 540.92 11.957⋮
dataAbsTime {2}
ans =92033×2时间表时间气流FuelRate _____________________________ _________ ________ 2022-01-20 01:22:34.000000000 17.294 - 1.209 2022-01-20 01:22:34.000561989 17.263 - 1.209 2022-01-20 01:22:34.003371932 16.776 - 1.1729 17.112 - 1.209 2022-01-20 01:22:34.010000000 2022-01-20 01:22:34.020000000 16.316 - 1.1409 15.907 - 1.1124 2022-01-20 01:22:34.030000000 2022-01-20 01:22:34.040000000 15.228 - 1.0652 15.546 - 1.0873 2022-01-20 01:22:34.050000000 2022-01-20 01:22:34.055327997 15.075 - 1.0652 15.075 - 1.0652 2022-01-20 01:22:34.055327997 2022-01-20 01:22:34.055327997 14.949 - 1.0458 15.075 - 1.0652 2022-01-20 01:22:34.060000000 2022-01-20 01:22:34.064672003 14.832 - 1.0458 14.707 - 1.0289 2022-01-20 01:22:34.070000000 2022-01-20 01:22:34.080000000 14.497 - 1.0143 14.317 - 1.0019 2022-01-20 01:22:34.090000000⋮