How to save the Data in different array using Value in 2nd column

10 visualizaciones (últimos 30 días)
Med Future
Med Future el 24 de En. de 2023
Comentada: Jan el 24 de En. de 2023
Hello, I hope you are doing well. I have the dataset which have five columns
My second columns consists the values 15,37,25 etc
I want to to save data in different array for example if i have value of 15 in 2nd column, i want to save the values of remaining four columns which correspond to 15 in different array.
Similar method for other values too.
How can i do that in MATLAB
  3 comentarios
Arif Hoq
Arif Hoq el 24 de En. de 2023
do you want only for 15,37,25 ?? or do you need all the unique values of column 2?
Jan
Jan el 24 de En. de 2023
@Med Future: Please do not address specific users in a question, if they are not involved in the discussion before. Imagine what would happen, if all users try to catch the attraction of some users: They will be overwhelmed by a pile of messages and will disable the notifications to stop the noise.
The most active members of this forum will post an answer if they find some time and know an answer. Pushing them by notifications will reduce their time to read questions only.
Thank you.

Iniciar sesión para comentar.

Respuestas (1)

Stephen23
Stephen23 el 24 de En. de 2023
Editada: Stephen23 el 24 de En. de 2023
Clearly creating lots of separate variables in the workspace would be a very bad approach:
So instead we will use the more efficient approach of storing the split data in one cell array:
S = load('DatasetValues.mat')
S = struct with fields:
DatasetValues: [49349×5 double]
M = S.DatasetValues
M = 49349×5
1.0e+06 * 0.2658 0.0000 0.0000 0.0001 0.0000 0.2920 0.0000 0.0000 0.0001 0.0000 0.2932 0.0000 0.0000 0.0001 0.0000 0.3079 0.0000 0.0000 0.0001 0.0000 0.3119 0.0000 0.0000 0.0001 0.0000 0.3147 0.0000 0.0000 0.0001 0.0000 0.3191 0.0000 0.0000 0.0001 0.0000 0.3249 0.0000 0.0000 0.0001 0.0000 0.3577 0.0000 0.0000 0.0001 0.0000 0.3590 0.0000 0.0000 0.0001 0.0000
[U,~,X] = unique(M(:,2));
F = @(n) M(X==n,:);
C = arrayfun(F,U, 'uni',0)
C = 29×1 cell array
{ 2967×5 double } { 6×5 double } { 3122×5 double } { 3×5 double } { 2×5 double } {16076×5 double } {[2.6727e+06 19 6.9581e-04 1.1950 1]} {[6.3468e+05 26 3.0502e-04 1.2750 2]} { 280×5 double } { 170×5 double } {[2.7925e+06 74 2.6536e-04 2.5650 3]} { 1982×5 double } { 4×5 double } { 998×5 double } { 0×5 double } { 0×5 double }
Each cell of C collects the value given in the corresponding location of U.
Although splitting data up is popular with beginners, in general data should be kept together as much as possible. The split-apply-combine workflow might be useful for you, and is supported by a number of functions:

Categorías

Más información sobre Matrix Indexing en Help Center y File Exchange.

Productos


Versión

R2021b

Community Treasure Hunt

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

Start Hunting!

Translated by