---json { "comments": { "title": { "en": "Three-neighbor voting", "es": "Votación de tres vecinos", "pt": "Votação de três vizinhos" }, "goal": { "en": "Select the three nearest points and take a majority vote.", "es": "Seleccionar los tres puntos más próximos y votar por mayoría.", "pt": "Selecionar os três pontos mais próximos e votar por maioria." }, "check": { "en": "Check the expected result; true means the check passed.", "es": "Comprobar el resultado esperado; true indica que la comprobación pasó.", "pt": "Verificar o resultado esperado; true indica que a verificação passou." }, "reference": { "en": "Topic reference (independently written example): https://github.com/TheAlgorithms/MATLAB-Octave", "es": "Referencia temática (ejemplo escrito de forma independiente): https://github.com/TheAlgorithms/MATLAB-Octave", "pt": "Referência temática (exemplo escrito de forma independente): https://github.com/TheAlgorithms/MATLAB-Octave" } } } --- % {{ comments.title[lang] }} % {{ comments.goal[lang] }} % {{ comments.reference[lang] }} clear training_values = [0,1,2,7,8]; labels = [1,1,2,2,2]; query_value = 1.2; distances = (training_values-query_value).^2; votes = zeros(1,2); best_slot = [1,0]; for neighbor_index = 1:3 best_slot(1) = 1; for item_index = 2:5 if distances(item_index) < distances(best_slot(1)) best_slot(1) = item_index; end end votes(labels(best_slot(1))) = votes(labels(best_slot(1)))+1; distances(best_slot(1)) = 1e6; end predicted_label = 1; if votes(2) > votes(1) predicted_label = 2; end % {{ comments.check[lang] }} example_check = predicted_label == 1 && all(votes == [2,1])