因为每个struct元素的大小都相同,所以将它们存储为单个3D数组将更加高效和灵活。此代码将当前结构转换为以下数组:
cal_data.OG_0100 = [
0.045260 -62.422000 0.044310 -60.768600
0.045000 -61.576600 0.044620 -61.303400];
cal_data.OG_0101 = [
0.044950 -61.316900 0.044110 -59.609500
0.045150 -62.235500 0.044380 -61.260800];
cal_data.OG_0102 = [
0.045160 -61.609900 0.044550 -61.759800
0.044950 -61.725800 0.044480 -61.062300];
data = struct2cell(cal_data);
data = reshape(data,1,1,[]);
data = cell2mat(data);
data(:,:,1)
cal_data.OG_0100
. 等。
然后,可以通过首先重塑为二维矩阵来为每个值生成直方图,其中每列是一个值,每行是一个观察值(这需要转置)。但是,由于每个值的范围非常不同,单个直方图可能并不理想。最好只画8个独立的直方图。
data = reshape(data,[],size(data,3)).';
hist(data)