我有一个文件 filedata.mat,其中包含一个 1x1 结构,其子级别包含来自车辆通道的数据。该文件有近 30 个测量通道。通道名称、通道单位和通道值(针对时间)存储在单独的子级别中。
我想通过列号指定哪些通道(即哪些数据列),并让代码将数据放置在一个矩阵中,其中第 1 行中的通道名称和第 2 行中的通道单元。
我目前拥有的代码如下:
clear all;
channels = [1 4 8];
source = load('filedata.mat');
N = size(channels,2);
I = size(source.Data.DataOut,1) + 2;
data = zeros(I,N);
for i = (1:1:I)
for n = (1:1:N)
if i == 1
data(i,n) = source.Data.ChannelNames{channels(n)};
elseif i == 2
data(i,n) = source.Data.ChannelUnits{channels(n)};
else
data(i,n) = source.Data.DataOut{i,channels(n)};
end
end
end
我的想法是,这会将通道名称放在第 1 行(即当 i = 1 时),将通道单元放在第 2 行(当 i = 2 时),然后将所有剩余的数据行放置到 i = I。
但是,当我运行此代码时,我收到错误“下标分配维度不匹配”。在第 14 行,即:
data(i,n) = source.Data.ChannelNames{channels(n)};
如果有人可以提出解决方案并且 - 也许更重要的是 - 解释我哪里出错了(所以我可以学到一些东西!)我真的很感激。
提前致谢。