Amend a column vector to a matrix array

What are some simple ways to amend a column vector to an array? I am trying to avoid setting a fixed number of column vectors to an array and would rather amend column vector after column vector with a while loop until it reaches the end of the loop. Feel it would be unnecessary to fix the length of the array if this could happen and it would be more fluid

4 Comments

I've seen something to the likes of w=[w z] where z is a column vector and w is an array with both having equal number of rows
That will work. This also works:
w(:,end+1) = z;
It is a good idea to pre-allocate if possible, however, like Matt J points out in his answer.
hugh, well i'll take the increase in round off error if it provides a better matrix that fits my data set more accurately

Sign in to comment.

Answers (1)

it would be unnecessary to fix the length of the array if this could happen and it would be more fluid
No, it won't be more fluid, because of
A compromise would be to hold the columns in a cell array and then combine them at the end, e.g.,
i=1;
c={};
while i<10
c{i}=rand(4,1);
i=i+1;
end
A=cell2mat(c)
A = 4×9
0.4293 0.5831 0.1375 0.3251 0.9970 0.2210 0.0956 0.4595 0.1706 0.9880 0.2839 0.6171 0.5244 0.4020 0.7433 0.8065 0.7895 0.0911 0.7028 0.6208 0.9873 0.0436 0.8547 0.3176 0.0456 0.8947 0.7712 0.5441 0.3587 0.6043 0.4594 0.0559 0.9560 0.8444 0.7481 0.7811

Categories

Find more on Fluid Dynamics 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!