Finding corresponding values in data set
3 ビュー (過去 30 日間)
古いコメントを表示
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 件のコメント
Walter Roberson
2022 年 9 月 16 日
Is there always exactly one 0 or zero crossing, or could there be several?
are the values in that column sorted?
採用された回答
Star Strider
2022 年 9 月 16 日
編集済み: Star Strider
2022 年 9 月 16 日
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 件のコメント
その他の回答 (0 件)
参考
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!