Ben Bunu nasıl yapacağım data = [1 1.2 1.3 1.5 1.8]
Belirli bir değere yakın değerleri nasıl bulurum?
Ben önce ve sonra bu nokta için verilerden en yakın değerleri bulmak istiyoruz, b = 1.23
var?
Ben Bunu nasıl yapacağım data = [1 1.2 1.3 1.5 1.8]
Belirli bir değere yakın değerleri nasıl bulurum?
Ben önce ve sonra bu nokta için verilerden en yakın değerleri bulmak istiyoruz, b = 1.23
var?
min(abs(data - b))
nasıl olur?
i_lower = find(data <= b,1,'last');
i_higher = find(data >= b,1,'first');
lower_than_b = data(i_lower)
higher_than_b = data(i_higher)
bulmak kullanabilirsiniz. data
numaralı vektörün sıralanması gerekmez ve b
olumlu veya olumsuz olabilir. dizini döndürür
ind=knnsearch(data',b) c=data(ind)
(ya endeksleri dizi):
[~,I] = min(abs(data-b));
c = data(I);
başka yöntemdir: veriler sıralanır eğer
data = [1 1.2 1.3 1.5 1.8]
b = 1.23
find(abs(data-b)==min(abs(data-b)))
Bu, bu gönderiye zaten yerleştirilmiş olandan daha fazla bir şey eklemiyor. – rayryeng
Bu yöntem birden aradığınız b
yılında unsur vardır duruma Şüphe cevabı genelleştirir data
'daki en yakın öğenin (veya öğelerin)'da listelenen öğelere göre ind
.
Aranacak dizinin bir sütun vektörü olması gerektiğinden, verilerin aktarıldığını unutmayın. Birden fazla eleman olsaydı, o zaman aynı zamanda bir sütun vektörü olmalıdır. Ayrıca, bu yöntem 2., 3., 4. ... en yakın komşuları vermek için genelleştirilebilir (belgelere bakınız).
veri yüksek boyutlu olması da durum ile genelleştirildiğinde (d
boyutları daha sonra test
ve b
d
sütun olurdu ise).
Aboneyi unutma ... – madth3