2

假设我有这个结构:

Results(i,j).fo
Results(i,j).co

哪里i=19j=30。我怎样才能ixj全部保存在矩阵中Results(i,j).fo?甚至更好,我怎么能说bootci只读Results(i,j).fo

Media_tot = mean(Matrix,2)
ci = bootci(1000, @mean, Matrix');
ci = abs(ci' - repmat(Media_tot,1,2));
hE   = errorbar(xdata_m, ydata_m, ci(:,1), ci(:,2));
4

2 回答 2

1

我认为这应该适用于您的第一个问题:

reshape([Results.fo], 19, 30)

例如

%// Make a 3x3 matrix of structs with 2 fields
A = [];
for k = 1:9
    A(k).x = k;
    A(k).y = 9-k;
end
A= reshape(A,3,3)

现在

reshape([A.x], 3,3)

ans =

   1   4   7
   2   5   8
   3   6   9

reshape([A.y], 3,3)

ans =

   8   5   2
   7   4   1
   6   3   0
于 2013-11-07T13:45:44.243 回答
1

给定一组等效结构,例如

Results = [ struct('fo',1, 'co',2) struct('fo',10, 'co',20); struct('fo',100, 'co',200) struct('fo',1000, 'co',2000) ]

您可以使用方括号访问所有“fo”

all_fo = [Results.fo]
% >> [1 100 10 1000]

但是,它们随后位于一维数组中,要以原始格式获取它们,请使用

all_fo = reshape([Results.fo], size(Results))
% >> [1 10; 100 1000]
于 2013-11-07T13:54:08.443 回答