conditional statement in one line for table columns

2 visualizaciones (últimos 30 días)
Priyanka Gaikwad
Priyanka Gaikwad el 23 de Jun. de 2017
Editada: Guillaume el 23 de Jun. de 2017
logic: if(p2>0) r4=q2/p2 else r4=2*q2/p2 Question : how to convert this into r4={if p2>0?r4=q2/p2:r4=2*q2/p2} in matlab? p2 and q2 are columns of table.

Respuesta aceptada

alice
alice el 23 de Jun. de 2017
Have a look at the documentation, for example these: find-array-elements-that-meet-a-condition and element-wise-multiplication.
In your case, you can do:
r4 = (p2>0).*(q2./p2) + (p2<=0).*(q2./p2)*2;

Más respuestas (1)

Guillaume
Guillaume el 23 de Jun. de 2017
Editada: Guillaume el 23 de Jun. de 2017
Or, rather than relying on semi-obscure mathematical expressions:
r4 = q2 ./ p2;
r4(p2 > 0) = 2 * r4(p2 > 0);
In my opinion, a lot clearer as to the intent.

Categorías

Más información sobre Logical en Help Center y File Exchange.

Community Treasure Hunt

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

Start Hunting!

Translated by