celestialgod

append_cell

Mar 30th, 2015
524
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
MatLab 1.44 KB | None | 0 0
  1. box = cell(10, 10, 10);
  2.  
  3. for i = 1:10000
  4.    loc = randi([1 10], [3 1]);
  5.    value = randn(1);
  6.    box{loc(1), loc(2), loc(3)} = [box{loc(1), loc(2), loc(3)}, {value}];
  7. end
  8. disp(box{1, 1, 1})
  9. % [1.2534]    [1.5920]    [0.4901]    [-0.4669]    [-0.5213]    [-0.1594]
  10. disp(sum(cell2mat(box{1, 1, 1})))
  11. % 2.1879
  12. box_sum = cellfun(@(x) sum(cell2mat(x)), box, 'UniformOutput', false);
  13. disp(box_sum{1, 1, 1})
  14. % 2.1879
  15.  
  16. box2 = cell(10, 10, 10);
  17. for i = 1:10000
  18.    loc = randi([1 10], [3 1]);
  19.    value = randn(5);
  20.    box2{loc(1), loc(2), loc(3)} = [box2{loc(1), loc(2), loc(3)}, {value}];
  21. end
  22. disp(box2{1, 1, 1})
  23. % [5x5 double]    [5x5 double]    [5x5 double]    [5x5 double]    [5x5 double]    [5x5 double]    [5x5 double]    [5x5 double]
  24. disp(sum(reshape(cell2mat(box2{1, 1, 1}), 5, 5, []), 3))
  25. %    -0.2675   -3.1187    2.2361    1.7025    0.8923
  26. %     1.9458   -3.8915    2.5633    1.9151    6.2906
  27. %    -0.7282    2.9414   -4.2599    6.6166    1.5368
  28. %    -6.4995    0.6097    0.4701    0.1814    1.4697
  29. %     1.7196   -1.9204   -6.1786    2.0501    0.8797
  30. box2_sum = cellfun(@(x) sum(reshape(cell2mat(x), 5, 5, []), 3), box2, 'UniformOutput', false);
  31. disp(box2_sum{1, 1, 1})
  32. %    -0.2675   -3.1187    2.2361    1.7025    0.8923
  33. %     1.9458   -3.8915    2.5633    1.9151    6.2906
  34. %    -0.7282    2.9414   -4.2599    6.6166    1.5368
  35. %    -6.4995    0.6097    0.4701    0.1814    1.4697
  36. %     1.7196   -1.9204   -6.1786    2.0501    0.8797
Advertisement
Add Comment
Please, Sign In to add comment