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

조회 수: 6 (최근 30일)
Med Future
Med Future 2023년 1월 24일
댓글: Jan 2023년 1월 24일
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
Arif Hoq
Arif Hoq 2023년 1월 24일
do you want only for 15,37,25 ?? or do you need all the unique values of column 2?
Jan
Jan 2023년 1월 24일
@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.

댓글을 달려면 로그인하십시오.

답변 (1개)

Stephen23
Stephen23 2023년 1월 24일
편집: Stephen23 2023년 1월 24일
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:

카테고리

Help CenterFile Exchange에서 Matrix Indexing에 대해 자세히 알아보기

제품


릴리스

R2021b

Community Treasure Hunt

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

Start Hunting!

Translated by