我有以下功能
for z=1:dimensions(2) % maximum of z
M = [];
for t=1:dimensions(4) %% maximum of t
M = [M test.field_data(x,z,y,t)];
end
t = [time];
end
我想创建一个矩阵M,它包含每个x y z值的所有field_data值(test.field_data(x,z,y,t)
,用于指定的t范围。
使用这个for循环,我可以得到每个z数的值,但是如何扩展它以便包含不同的x(x=1:dimensions(1)
)值和y(y=1:dimensions(3)
)值?我很难正确设置三重for循环。你能帮帮我吗?
答案 0 :(得分:2)
您不需要任何for循环。
test.field_data(1:dimensions(1),z,1:dimensions(3),1:dimensions(4))
在您的代码中,M在每次迭代开始时被删除(M=[]
)
答案 1 :(得分:1)
使用cellfun
选择相关的t
间隔
c = cellfun( @(x) x.filed_data(:,:,:,t_intrvl), test, 'UniformOutput', false );
cat
将单元格放入单个数组M
M = cat( 4, c{:} ); % cat along fourth dim
无论如何,您现在可以reshape
M
。