store vctors of non-fixed size
1 visualizzazione (ultimi 30 giorni)
Mostra commenti meno recenti
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 Commenti
Risposte (1)
Walter Roberson
il 28 Dic 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 Commenti
Vedere anche
Categorie
Scopri di più su Logical in Help Center e File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!