для любых корней Мне нужно создать скрипт, чтобы выход был только реальным отрицательным нечетным корнем.Matlab: Реальные отрицательные нечетные корни
Например: rtemp = [-8 -8 -8 -8 4 -1 3]
выбрать только действительные отрицательные корни (есть некоторые случаи, когда корни являются сложными, поэтому я не хочу сложные корни:
rneg=[];
for i=1:length(rtemp)
if(isreal(rtemp(i))==1) && (rtemp(i)<0)
rneg = [rneg rtemp(i)];
end
end
rneg =
-8 -8 -8 -8 -1
Теперь я только хочу только нечетные корни. В этом примере -8 - четный корень (4 раза), а -1 - нечетный, поэтому выход будет равен -1. Если rtemp = [-8 -8 -8 4 -1 3]
, то -8 будет нечетным корнем (3 раза), поэтому выход будет [-1 -8]
. Как я могу написать, чтобы иметь только нечетные корни? Спасибо!
+1 Но заметьте 'isreal' тип, а не значение определяет. Например, 'isreal (complex (1))' givers 'false'. В зависимости от того, как выполняются корни, может быть более безопасным протестировать 'imag (rtemp) == 0' вместо' isreal (rtemp) '(в дополнение к проблемам, связанным с сравнением с реальным числом) –
@LuisMendo Вы правы, также похоже, что 'isreal' не возвращает вектор плюс' <0' сбой на вектор комплексных чисел. Исправлено. – Dan