2016-10-31 4 views
0

Я ищу, чтобы создать функцию, которая возьмет вектор и вернет все отрицательные значения в один вектор и их положение в другом векторе. Так, например,Функция, которая принимает вектор и возвращает отрицательные числа и позицию

% output: 
v = [-1 4 6 2 -3] 

% output: 
vneg = [-1 -3] 
pos = [1 5]. 

любая помощь приветствуется!

ответ

5

Одно простое решение для получения отрицательных значений и их индекса.

x = [4 3 -2 9 -7 31]; 

index = find(x<0); 
-> index = 3 5 

x_new = x(index); 
-> x_new = -2 -7 

Просто измените условие в функции поиска согласно вашему требованию.

+0

спасибо за помощь, но как я могу написать это в функции? Я считаю, мне нужно использовать циклы – henberry

+0

Вам нужно немного учиться. Узнайте, что делает функция find() в matlab. Вы получите ответ. –

0

Просто, чтобы закончить @ ответ WasiAhmad в:

function [vneg, pos] = find_negatives(V) 

    pos = find(V < 0); 
    vneg = V(pos); 

end 
Смежные вопросы