How can I ort elements of a column in a matrix using elements of another column in another matrix

1 view (last 30 days)
I have a matrix of 3 columns: A, B and C. The values of A and B are collected from floats. Each float collects data over a specific depth range by sinking several times. Thus, each sink produces a seperate depth profile. These profiles are assigned with numbers which are given in column C (if each float generates 10 profiles, then for the first float, C = 1 to 10; for the second float, C = 11 - 20 and so on...). For every C, there is a set of values for A and B. Hence my data look like:
Matrix 1
A B C
24 35 1
17 35 1
11 35 1
5 35 2
26 34 2
20 34 2
15 34 3 so on...
A and B correlate with one another. Therefore I wanted to find y-intercepts of the A-B regression line for each profile. If we take the above dataset, for the three profiles shown, there will be three y-intercepts. Thus, my results look like:
Matrix 2
Profile Y-intercept
1 xxx
2 - xxx
3 xxx
IMPORTANT: The length of Matrix 2 is shorter than length of Matrix 1
The calculated y-intercepts can be either positive or negative. I am only interested in the positive values. I have already isolated the positive y-intercepts and the profiles that are responsible in generating them using an if loop. The next step I want to achieve is to go to the Matrix 1 and only keep rows where the value of C equals to the selected profile numbers. So I want to see something like this:
Matrix 3
A B C
24 35 1
17 35 1
11 35 1
15 34 3 (because profile number 2 gives a negative y-intercept, I want all the rows corresponding to C = 2 eliminated).
I can manually create Matrix 3 on an Excel by hand picking the rows based on the profiles. But I have data from 6098 profiles with a total of 29943 rows. Therefore I would very much like to know if there is any easier way of doing this on Matlab.
Thank you in advance.

Accepted Answer

Matt J
Matt J on 20 Mar 2023
Edited: Matt J on 20 Mar 2023
subset=[1,3] %The vector of IDs with positive y-intercept
idx=ismember(Matrix1(:,3),subset);
Matrix1=Matrix1(idx,:);

More Answers (0)

Categories

Find more on Shifting and Sorting Matrices in Help Center and File Exchange

Community Treasure Hunt

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

Start Hunting!