извлечение вещественного числа из массива в matlab [дубликат]
этот вопрос уже есть ответ здесь:
Я хотел бы извлечь только действительные числа из массива, содержащего мнимые числа также Я хотел бы исключить мнимые числа из массива. Поэтому из массива 10 элементов, из которых 5 действительных и 5 мнимых, чтобы получить массив только из 5 элементов, который должен быть вещественным элементом чисел. Это в MATLAB
EDIT:
добавив пример
input_array = [ 1, 1+i, -2+2*j, 3, -4, j ];
желаемый результат будет
output = [ 1, 3, -4 ];
, который содержит только реальные элементы input_array
.
4 ответов
другой, более векторизация образом:
sel = a == real(a); % choose only real elements
only_reals = a( sel );
можно использовать isreal в сочетании с arrayfun чтобы проверить, являются ли числа реальными и / или реальные чтобы просто сохранить реальные части. Примеры:
a = [1+i 2 3 -1-i];
realidx = arrayfun(@isreal,a);
only_reals = a(realidx);
only_real_part = real(a);
>> only_reals
= [ 2 3]
>> only_real_part
= [1 2 3 -1]
действительные числа имеют мнимую часть нуля, поэтому:
input_array(imag(input_array)==0);
ans =
1 3 -4