Clear Filters
Clear Filters

Preallocate memory for the rows of each field inside a structure

2 views (last 30 days)
Hi all
This should be pretty easy but I can't seem to find the right way to do this...
I have this structure, each of its fields are preallocated so field 1 = [ ], same for the rest. I'm filling the rows of each field one at a time so Matlab is complaining that I should preallocate the rows first. I tried nameofstructure(1:900).field1=[ ] but this doesn't work. I've also tried with the curly brackets with no avail.
What's the correct way to preallocate the rows once the fields have been preallocated? Thanks!
LD

Answers (1)

Stephen23
Stephen23 on 2 Jul 2019
Edited: Stephen23 on 2 Jul 2019
This should get you started:
>> S = struct('F',{[],[],[]});
>> S.F
ans =
[]
ans =
[]
ans =
[]
>> [S.F] = deal(zeros(3,5));
>> S.F
ans =
0 0 0 0 0
0 0 0 0 0
0 0 0 0 0
ans =
0 0 0 0 0
0 0 0 0 0
0 0 0 0 0
ans =
0 0 0 0 0
0 0 0 0 0
0 0 0 0 0
See:

Categories

Find more on Performance and Memory in Help Center and File Exchange

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!