How to make 2 matrix out of 1 one matrix??

4 Ansichten (letzte 30 Tage)
Ali nouri
Ali nouri am 25 Jun. 2020
Kommentiert: Alan Stevens am 26 Jun. 2020
Hi Guys,
I have a 8760X30 matrix, which is included with the positive and negative number. Now I want to make 2 matrix of the originally matrix with the same dimension.
The difference is in one matrix should included the possitive number from the originally matrix and replace the negatives with zero, and in the other matrix should included with negative value and replace positive number with zero.
How can I do it?

Akzeptierte Antwort

Alan Stevens
Alan Stevens am 25 Jun. 2020
If your first matrix is A, then:
ix = find(A>0); B = A; B(ix) = 0;
ix = find(A<0); C = A; C(ix) = 0;
  2 Kommentare
Sugar Daddy
Sugar Daddy am 26 Jun. 2020
using find is inefficient in such kind of scenaria.
Alan Stevens
Alan Stevens am 26 Jun. 2020
I agree that the "find" version is not the most efficient. However, sometimes clarity is more important than efficiency, and I suggest that, for a novice, the "find" version is clearer.

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (1)

Sugar Daddy
Sugar Daddy am 25 Jun. 2020
Bearbeitet: madhan ravi am 26 Jun. 2020
Aneg = (A<0) .* A
Apos = (A>0) .* A

Community Treasure Hunt

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

Start Hunting!

Translated by