Clear Filters
Clear Filters

How to separate all negative and all positive values of a vector?

80 views (last 30 days)
Hello, I baffled by one task in Matlab, namely I need to create two vectors that contains all positive and all negative values of an initial vector. I would like to get a general answer to my question. Here is my script (unfinished): for i=1:numel(x) if x(i) > 0 & x(i)==0 P(i)=????????(all positives) end end disp('The postive vector is:')
Sergey

Accepted Answer

Stephen23
Stephen23 on 23 Sep 2015
Edited: Stephen23 on 23 Sep 2015
You don't need a loop, because logical indexing is much simpler and faster:
>> X = [1,2,-3,-4,5,-6,7,-8,9];
>> idx = X<0; % create logical index
>> neg = X(idx)
neg =
-3 -4 -6 -8
>> pos = X(~idx)
pos =
1 2 5 7 9
  5 Comments
Walter Roberson
Walter Roberson on 20 Mar 2023
Do we understand correctly that there should be 11 different outputs?
  1. element in first vector and second vector are both positive
  2. element in first vector is positive, element in second vector is zero
  3. element in first vector is positive, element in second vector is negative
  4. element in first vector is zero, element in second vector is positive
  5. element in first vector is zero, element in second vector is zero
  6. element in first vector is zero, element in second vector is negative
  7. element in first vector is negative, element in second vector is positive
  8. element in first vector is negative, element in second vector is zero
  9. element in first vector is negative, element in second vector is negative
  10. element exists in first vector but you have run out of elements in the second vector
  11. element exists in second vector but you have run out of elements in the first vector
Or should the cases where you have run out of elements in one of the vectors each be split into the negative / zero /positive, leading to a total of 15 different cases?

Sign in to comment.

More Answers (1)

RAM MANOHAR
RAM MANOHAR on 23 Jul 2019
I have used for , if --else loops but i have got positive and 0 in place of negative.

Categories

Find more on Creating and Concatenating Matrices in Help Center and File Exchange

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!