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 个评论

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

请先登录,再进行评论。

回答(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

类别

帮助中心File Exchange 中查找有关 Fluid Dynamics 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by