Storing vectors of different lengths
Show older comments
Dear Everyone,
Just a quick question:
I have 4 vectors, each of different lengths, and I want to store them for some calculations later on in my script.
So I tried:
Hx = [36 72 108 144] % Height of building
v = Hx./3*15 % Maximum shear force acting on the building
V = flip((15:15:v)) % 4 vectors containing the cumulative shear forces at each storey
But colon operators must be real scalars. So, this won't work.
My question is: what is the simplest way to obtain and store the 4 vectors I want of varying lengths?
Many thanks to you all.
Scott
1 Comment
Scott Banks
on 8 Oct 2025
Moved: dpb
on 8 Oct 2025
Accepted Answer
More Answers (1)
Umar
on 7 Oct 2025
0 votes
Hi @Scott Banks,
I saw your question about generating four vectors of varying lengths for building shear forces. I put together a clean MATLAB approach that does exactly what you need.
%% Building heights and max shear Hx = [36, 72, 108, 144]; v = Hx/3*15; step = 15;
%% Generate all descending vectors in a single, compact line V = arrayfun(@(x) linspace(x, step, ceil(x/step)), v, 'UniformOutput', false);
%% Display each vector
cellfun(@(vec,i) fprintf('Building %d | H = %d m | Shear: %s\n', i, Hx(i), strjoin(string(vec), ' ')), V, num2cell(1:numel(V)));
Results: please see attached.
How it works:
- Each element of `V` is a descending vector from the maximum shear down to 15 kN.
- The vectors automatically have the correct length for each building.
- All vectors are stored in a cell array, making them easy to access later (`V{1}`, `V{2}`, etc.).
- No loops are needed — the code is concise, readable, and scalable.
This approach directly gives you the four vectors you wanted, in a neat, structured way. It’s also easy to extend if you add more buildings or change the step size.
Hope this helps!
Categories
Find more on Mathematics 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!