Как выяснить, где число находится в матрице и удалить его, а также добавить его? - PullRequest
0 голосов
/ 10 июня 2019

У меня есть матрица, представляющая собой набор строк, например:

x = [1; 2; 3; 4; 5]

Что я пытаюсь сделать, это добавить 3.5 в матрицу, сохраняя порядок. Например, приведенная выше матрица будет:

[1; 2; 3; 3.5; 4; 5]

Другая вещь, которую я хотел выяснить, это как проверить, существует ли число в матрице в течение определенного интервала. Например, если я хочу увидеть, существует ли 4.5 в интервале .5, он сказал бы, что он находится в 4 и 5.

Я вижу, как это можно сделать, выполняя цикл for, но это похоже на то, что MATLAB должен был сделать встроенным. Причина, по которой я этого хочу, - сделать мой код эффективным, потому что я буду обрабатывать огромный набор данных. Что касается проблемы с интервалом, я думал об использовании ismembertol, но проблема в том, что tol - это всегда процент, это не жестко запрограммированное число, например .5.

1 Ответ

0 голосов
/ 10 июня 2019
%assume that it is in sorted order
insertind = find(x<3.5,1, 'last') 
x = [x(1:insertind); 3.5; x(insertind+1:end)]; %inserted at that index
%exists within tolerance
find(abs(x-4.5)<=0.5)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...