Filter löschen
Filter löschen

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

1 Ansicht (letzte 30 Tage)
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

Akzeptierte Antwort

John Harry
John Harry am 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

Weitere Antworten (2)

Eamon
Eamon am 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 am 30 Sep. 2016
X_Y = X(Y + (0:numel(Y)-1)*size(X,1));

Kategorien

Mehr zu Loops and Conditional Statements finden Sie in Help Center und File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by