И снова у меня есть проблемы с поиском соответствующих значений:Как использовать IsMember-команду правильно
Рассмотрим вектор P_in и вектор spacing_Pin: spacing_Pin вектор, начиная с -27 и заканчивая 2. Пробелы 0,0001. Первые записи о spacing_Pin являются:
- -27
- -26,9999
- -26,9998
- ...
- -26,7400 (2601th запись)
Первая запись от P_in составляет -26,7400, что явно включено как в P_in, так и в spacing_Pin. Однако, когда я типа в Matlab ismember(P_in,spacing_Pin)
, результат представляет собой вектор, начиная с:
Так, он говорит, что первое вхождение P_in не входит в spacing_Pin. Но это неправильно!
Вот маленькая версия моего кода:
P_in1 = table(:,1)
P_out1 = table(:,2)
spacing_Pin = transpose(linspace(-27,2,290001)); % spacing = 0.0001
P_out1_intrp = interp1(P_in1,P_out1,spacing_Pin,'spline');
P_in = P_in1 + some_constant;
% max(some_constant) = 0.0205, min(some_constant) = -1.135
% the entries of some_constant have many digits after the dot.
% The first entry for example is: -0,117094826063334
% this might be the issue since my spacing has accurracy 0.0001
% this is probably not the problem with ismember(), but another one I have to solve
P_out = P_out1_intrp(ismember(P_in,spacing_Pin));
Ok. Если вам нужно иметь значения some_constant или какой-либо другой переменной, я могу попытаться загрузить ее каким-то образом. Я не знаю, как на данный момент, так как все столы довольно длинные.
Здравствуйте, снова! Отправьте свой код. Вы не можете помочь вам, не понимая, что именно вы используете. Кроме того, прочитайте [здесь] (http://stackoverflow.com/help/mcve) о том, как создать минимальный полный пример. – buzjwa
ОК. Я только что редактировал мой вопрос. Надеюсь, мое письмо не слишком смущает. –