Filter löschen
Filter löschen

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

80 Ansichten (letzte 30 Tage)
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

Akzeptierte Antwort

Stephen23
Stephen23 am 23 Sep. 2015
Bearbeitet: Stephen23 am 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 Kommentare
Walter Roberson
Walter Roberson am 20 Mär. 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?

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (1)

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

Kategorien

Mehr zu Creating and Concatenating Matrices finden Sie in Help Center und File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by