Finding a value in a column from a change in another column in a matrix?

1 Ansicht (letzte 30 Tage)
Given the matrix below:
1.1586 0.9381 3.0000
1.2265 0.6906 3.0000
1.2765 0.5432 3.0000
1.3266 0.4243 2.9999
1.3766 0.3302 2.9999
1.4267 0.2565 2.9997
How can I write the code which gives me the value in column 1, corresponding to the point in which column 3 changes from 3.0000 to 2.9999?

Akzeptierte Antwort

Thorsten
Thorsten am 3 Dez. 2015
Bearbeitet: Thorsten am 3 Dez. 2015
ind = X(:,3) == 3.0 & [abs(abs(diff(X(:,3))) - 1e-4) < 1e-10; 0]
X(ind,1)
or
ind = X(1:end-1,3) == 3.0 & X(2:end,3) == 2.9999;
X(ind, 1)

Weitere Antworten (1)

Eng. Fredius Magige
Eng. Fredius Magige am 3 Dez. 2015
Bearbeitet: Eng. Fredius Magige am 3 Dez. 2015
Hi Use for in association with find function looking exact Nii_Ni=0.0001; note the last and first N need some manipulation, this could be controlled by if else

Community Treasure Hunt

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

Start Hunting!

Translated by