split a vector and save it as a cell (1xN)

I have three vectors:
  • vector_1 has numbers from 69 to 98;
  • vector_2 has numbers from 69 to 78 and 82 to 98;
  • vector_3 has numbers 69 to 78, 82 to 89 and 91 to 98.
I would like to subdivide the vector into a cell:
  • for vector_1: I need to get a cell with numbers 69 to 98 (cell 1x1);
  • for vector_2: I need to get a cell with the numbers 69 to 78 and 82 to 98 (cell 1x2);
  • for vector_3: I need to get a cell with the numbers 69 to 78, 82 to 89 and 91 to 98 (cell 1x3).

1 Comment

"Is there any possibility to create a more generic code?"
The data you have is stored dynamically, which is hard to work with. There is possibility of improvement from the given answer, but you will have to do the same thing for each vector manually.
You can store the data in a cell array and run a for loop through each element.
How many vectors are you dealing with? What do you want to do this the output?

Sign in to comment.

 Accepted Answer

To subdivide avector into a cell array you can use the following code snippet. In this code, the cellArray is initialized as a cell array with the appropriate size to store the subdivisions of each vector. The subdivisions are then assigned to the respective cells using indexing.
% Define the vectors
vector_1 = 69:98;
vector_2 = [69:78, 82:98];
vector_3 = [69:78, 82:89, 91:98];
% Create a cell array to store the subdivisions
cellArray = cell(1, 2);
% Subdivide vector_1
cellArray{1} = vector_1;
% Subdivide vector_2
cellArray{2} = [vector_2(1:10), vector_2(15:end)];
% Subdivide vector_3
cellArray{3} = [vector_3(1:10), vector_3(15:22), vector_3(24:end)];

4 Comments

Thank you for your reply @Vishnu. Is there any possibility to create a more generic code?
With the code you provided I am constrained to know how many blocks is composed the vector.
yes sure you can add a for loop, that will loop around the lenght of number of blocks and then add them to cell array.
Thank you, I managed to find the solution.
No problem Alberto could you mark this answer as acceped then?

Sign in to comment.

More Answers (0)

Products

Release

R2021b

Asked:

on 13 Jul 2023

Commented:

on 14 Jul 2023

Community Treasure Hunt

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

Start Hunting!