Clear Filters
Clear Filters

How can I extract a specific row of data from each column of a matrix

1 view (last 30 days)
Hello, Matlabbers.
I have 286x8 matrix (X) where each column of data has a different number of numerical data points followed by NaNs to create a length of 268 for each column. I have identified the last row of numerical data in each column using the command Y = sum(isfinite(X)) which returns a 1x8 row of data identifying the final data point of non-NaN values. What I need to do now is extract the data from each column of X corresponding to each value in Y. Nothing I have tried has worked. Does anyone have any suggestions for how to extract these values?
Thanks, John

Accepted Answer

John Harry
John Harry on 30 Sep 2016
I did some extra digging, and was able to get the data I need using a basic for loop (Not sure why a loop with this structure did not cross my mind earlier!). The loop that did the trick was:
for i = 1:length(Y)
X_Y(i) = X(Y(i),i)
end

More Answers (2)

Eamon
Eamon on 30 Sep 2016
X(Y(1))
should work to get that data point for the first column of X,
X(Y(2))
for the second column of X, etc.

James Tursa
James Tursa on 30 Sep 2016
X_Y = X(Y + (0:numel(Y)-1)*size(X,1));

Categories

Find more on Loops and Conditional Statements 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!