車両チャネルからのデータを含むサブレベルを持つ 1x1 構造体を含むファイル filedata.mat があります。このファイルには、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)};
誰かが解決策を提案し、おそらくもっと重要なことに、どこが間違っているのかを説明できれば (そうすれば何かを学ぶことができます!)、本当に感謝しています。
前もって感謝します。