Storing vectors of different lengths
Mostra commenti meno recenti
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 Commento
Scott Banks
il 8 Ott 2025
Spostato: dpb
il 8 Ott 2025
Risposta accettata
Più risposte (1)
Umar
il 7 Ott 2025
0 voti
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!
Categorie
Scopri di più su Mathematics in Centro assistenza e File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!