Finding corresponding values in data set
3 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
I have a set of matrices each with 4 columns. I want to extract the value of the 1st column corresponding to the 0 in the second column and plot that point. How can I do this? and for cases where there is no exact zero, interpolate between the two values that cross 0?
2 commentaires
Walter Roberson
le 16 Sep 2022
Is there always exactly one 0 or zero crossing, or could there be several?
are the values in that column sorted?
Réponse acceptée
Star Strider
le 16 Sep 2022
Modifié(e) : Star Strider
le 16 Sep 2022
I would just do the interpolation using interp1 since it will interpolate to 0 or the closest value to it.
Try this —
M = randn(10,4)
L = size(M,1);
idx = find(diff(sign(M(:,2))))
for k = 1:numel(idx)
idxrng = max(1,idx(k)-1) : min(L,idx(k)+1);
Result(k,:) = interp1(M(idxrng,2), M(idxrng,:),0);
end
Result
EDIT — Aesthetic tweaks.
.
4 commentaires
Plus de réponses (0)
Voir également
Catégories
En savoir plus sur Interpolation dans Help Center et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!