jellumur
Artikelen: 0
Berichten: 2
Lid geworden op: wo 27 feb 2013, 19:46

Matlab - Matrix omzetten naar 1-en en 0-en

Ik heb al een tijdje geGoogled, maar kan het nergens vinden. Toch denk ik dat er ongetwijfeld een commando is in Matlab waarmee je het volgende kan doen:

Voor de matrix B:

B = [0 2 0;1 0 4;3 -3 0]

Een matrix C genereren, waarin voor alle positieve waarden in B een 1 wordt ingevuld en voor alle nul-waarden een 0 en (hoewel ik dat in dit geval niet nodig heb) voor alle negatieve waarden een -1.

C = [0 1 0;1 0 1;1 -1 0]

Alvast bedankt!

Ps Delen door zichzelf (B./B) levert NaN op de plekken van de 0-en op. Dat is dus niet de bedoeling.
Gebruikersavatar
Xenion
Artikelen: 0
Berichten: 2.609
Lid geworden op: za 21 jun 2008, 10:41

Re: Matlab - Matrix omzetten naar 1-en en 0-en

Je kan het volgende doen:

Code: Selecteer alles


C = zeros(size(B));

C(B>0) = 1;

C(B<0) = -1;

(dit heet logical indexing)

Code: Selecteer alles

C = (B>0) - (B<0)
werkt ook.
jellumur
Artikelen: 0
Berichten: 2
Lid geworden op: wo 27 feb 2013, 19:46

Re: Matlab - Matrix omzetten naar 1-en en 0-en

Mijn dank is groot!

Terug naar “Informatica en programmeren”