转换4D双重数据集以最终获得时间序列

时间:2018-06-19 18:26:02

标签: matlab mat

我有一个数据集x,它是4D两倍,尺寸为[3x16x3x300]。 维度是:状态,区域,模式和时间。

我想将其转换为时间序列,该时间序列应仅为regions x time

我如何能够挑选出我需要的部分以获得时间序列?我曾考虑过重塑,但我不确定要使用什么值。

与我一起工作的人说她在维度和模式上取平均值,尽管我不太了解她的意思。 regions x time矩阵应为16x300,因为此后我将计算功能连通性,该连通性应为16乘16。

以下脚本:

fileName = sprintf('BOLD-G01_branch1.h5');
%% path2data = 'output file'
path2data = 'C:/Users/Aiskya/Desktop/test/1009A/';
x = (squeeze(hdf5read(fullfile(path2data,fileName),'/x')));  
N=size(x,2); 
reshape(squeeze(x))     % --> This is the part that I'm confused of
TSsim = x;
TSsim = TSsim(11:end,:);

1 个答案:

答案 0 :(得分:0)

要对要去除的尺寸进行平均,请遵循以下食谱:

x = zeros(3,16,3,300); % fill in the actual data here
y = mean(x,1);    % average over dimension 1, output is 1x16x3x300
y = mean(y,3);    % average over dimension 3, output is 1x16x1x300
y = squeeze(y);   % remove dimensions of size 1, output is 16x300

输出y仅包含regionstime轴。每个点y(i,j)是状态和模式x(:,i,:,j)的平均值。