2013-04-02 109 views
1

多路数据我有以下三路数据(IXJXK),用于我的聚合体系:Z(23x4x3)存储从for循环

Z(:,:,1) = [0 6.70 NaN NaN 
0.14 5.79 27212.52 17735.36 
0.26 5.04 26545.98 17279.95 
0.35 4.43 26007.91 16902.22 
0.43 3.92 25567.61 16586.18 
0.49 3.50 25202.48 16319.65 
0.54 3.15 24898.99 16094.87 
0.59 2.85 24648.07 15906.19 
0.63 2.60 24441.06 15748.28 
0.66 2.38 24270.42 15616.51 
0.68 2.20 24130.05 15506.90 
0.71 2.05 24014.78 15415.87 
0.73 1.92 23921.74 15341.59 
0.74 1.80 23847.57 15281.63 
0.76 1.70 23789.06 15233.54 
0.77 1.61 23744.29 15195.99 
0.78 1.54 23710.83 15167.01 
0.79 1.47 23687.05 15145.38 
0.80 1.41 23671.47 15129.72 
0.81 1.36 23662.99 15119.14 
0.81 1.31 23660.58 15112.77 
0.82 1.27 23663.32 15109.86 
0.82 1.23 23670.44 15109.74]; 

Z(:,:,2) = [0 6.70 NaN NaN 
0.17 5.63 24826.03 16191.26 
0.30 4.80 24198.87 15757.83 
0.40 4.14 23720.27 15417.52 
0.47 3.61 23347.38 15147.16 
0.54 3.19 23058.01 14933.52 
0.59 2.85 22836.18 14766.65 
0.63 2.57 22667.24 14637.38 
0.66 2.34 22539.27 14537.68 
0.69 2.15 22445.60 14463.08 
0.71 2.00 22379.90 14409.04 
0.73 1.87 22336.70 14371.44 
0.75 1.76 22311.74 14347.04 
0.76 1.66 22301.57 14333.13 
0.77 1.58 22303.32 14327.31 
0.78 1.51 22314.83 14327.75 
0.79 1.45 22334.27 14333.00 
0.80 1.40 22360.11 14341.81 
0.81 1.36 22391.09 14353.22 
0.81 1.32 22426.11 14366.39 
0.82 1.28 22464.22 14380.67 
0.82 1.25 22504.61 14395.53 
0.82 1.23 22546.61 14410.57]; 

Z(:,:,3) = [0 6.70 NaN NaN 
0.19 5.45 22687.71 14805.97 
0.34 4.53 22119.24 14408.55 
0.44 3.84 21720.37 14120.95 
0.52 3.31 21437.68 13912.54 
0.58 2.90 21244.60 13766.39 
0.63 2.59 21117.60 13667.05 
0.66 2.34 21040.03 13602.91 
0.69 2.14 21000.70 13565.85 
0.72 1.98 20990.89 13549.24 
0.73 1.85 21003.53 13547.54 
0.75 1.74 21033.19 13556.41 
0.76 1.65 21075.85 13572.54 
0.77 1.58 21128.37 13593.46 
0.78 1.52 21188.17 13617.25 
0.79 1.47 21253.16 13642.44 
0.80 1.42 21321.69 13668.02 
0.80 1.39 21392.34 13693.18 
0.81 1.36 21463.83 13717.38 
0.81 1.33 21535.27 13740.33 
0.81 1.31 21605.87 13761.81 
0.82 1.29 21674.84 13781.70 
0.82 1.27 21741.68 13799.97]; 

其中I是时间(y轴),J是变量( x轴),K是批量(z轴)。但是,由于我想使用这些数据来进行PCA和PLS分析,我必须将此(时间x变量x批次)维度更改为(批次(I)x变量(J)x时间(K))维度,这意味着新的Z是Z(3 x 4 x 23)。

要执行此我可以提取从每个板(K维)的第一行的值,并使用下面的命令重新排列它们作为新的矩阵板:

T1=squeeze(Z(1,:,:))’ 

因此,我使用的循环,以获得所有23块板的结果。但我不能(不知道如何)将结果存储在除最后一个之外的工作空间中。我使用的命令:

[I,J,K] = size(Z); 
SLAB = zeros(K,J,I); %preallocating the matrix; where I=23,J=4,K=3 
for t = 1 : I %here I = 23 
slab = squeeze(Z(t,:,:))’; %removing semicolon here I can see the wanted results in command window 
SLAB = slab; 
end 

HOpe在这里的任何人都可以帮助我解决这个问题。 谢谢

回答

0

我找到了解决方案;

,因为我知道板坯将(K,J,I)的大小,所以必须为循环提供的格式相同的:

[I,J,K] = size(Z); 
SLAB = zeros(K,J,I); %preallocating the matrix; where I=23,J=4,K=3 
for t = 1 : I %here I = 23 
slab(:,:,t) = squeeze(Z(t,:,:))’; 
end