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

4 次查看(过去 30 天)
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 个评论
Dyuman Joshi
Dyuman Joshi 2023-7-14
"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?

请先登录,再进行评论。

采纳的回答

Vishnu
Vishnu 2023-7-13
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 个评论
Vishnu
Vishnu 2023-7-13
No problem Alberto could you mark this answer as acceped then?

请先登录,再进行评论。

更多回答(0 个)

类别

Help CenterFile Exchange 中查找有关 Loops and Conditional Statements 的更多信息

产品


版本

R2021b

Community Treasure Hunt

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

Start Hunting!

Translated by