store vctors of non-fixed size
1 Ansicht (letzte 30 Tage)
Ältere Kommentare anzeigen
I have a loop to call a function, this function will return a vector, the size of vector is not fixed. However, in the main function, I want to store the returned vector of each loop into a matrix or any other places. Is there any way to tackle this size changing issue? Seems that the preallocation is difficult.
0 Kommentare
Antworten (1)
Walter Roberson
am 28 Dez. 2022
If you have a known number of iterations, then pre-allocate a cell array and store the results into that.
If you have a maximum possible return size per iteration, sometimes it makes sense to take the output, pad it with filler values to the maximum size, and store the padded value into a pre-allocated array.
If I am reading multiple files in which I do not know maximum reasonable size, then at each step I read in a file, and compare the dimensions to the current dimensions of my accumulated data. If the new data is smaller in a dimension than the accumulated data, then I pad the data to the current size. If the new data is larger in some dimension than the saved data then I pad the saved data to the new size. Then now that the sizes are compatible, store the new data. This code takes a bit of work (it is easier if padding with zero is acceptable.)
0 Kommentare
Siehe auch
Kategorien
Mehr zu Logical finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!