matlab'da bir array'in en küçük n elemanını döndürmenin basit bi yolu var mı? min diye bi fonksiyon var ve en küçüğünü döndrüyor ama en küçük 3 elemanı istediğimde mesela, önce en küçüğü bulup sonra onu array'den çıkarıp yeni en küçüğü bulup filan mı yapmam lazım uzun uzun? öyleyse array'in 2. elemanını çıkar gibi bişey var mı mesela? burda tabi küçüğü 2.elemanda buldum gibi bir bilgi de lazım. çok kolaya kaçıyorum gibi oldu ama acele olduğu için biraz varsa kısa çözüm boşuna uğraşmak istemiyorum.

min elemanın index'ini döndüren bir fonksiyon tarzı bir şey de işe yarar.


 

sort diye bir komut var -adı üstünde- diziyi sıraya diziyor, böylece ilk elemanlar sıra ile en ufakları oluyor.

nicin ben

Şöyle bir şey buldum: "You just need to read the syntax on the max function. Try [val,ind]=max(J, [ ], 3). This gives you the value (val) and the index (ind) of the max of the tensor J along the third dimension."

Bir de: "[C,I] = min(...) finds the indices of the minimum values of A, and returns
them in output vector I. If there are several identical minimum values, the index of
the first one found is returned."

Edit: a=[8 7 5 8 19 2 13] olsun. [m, i]=min(a) yapınca m=2, i=6 döndürüyor. Matlab kurulu değil, Freemat'te denedim ama onda da oluyordur.

Bi daha edit: Sort daha iyiymiş. [m,i]=sort(a); i(1:3);

fadetoreality

teşekkür ederim cevaplar için.

evet oldu matlab'ta da [m, i]=min(a).

ayrıca evet sort işime daha çok yarar gibi geldi bana da. daha kolay olur yani.

tepedeki psychedelic adam
1

mobil görünümden çık