why doesn't my "if" statement work?

1 visualización (últimos 30 días)
john borsellino
john borsellino el 4 de Jun. de 2013
i have 2 columns that i am performing an element-wise foldchange analysis on columns A & B. if the result is less than 1 then the operation must be reversed. i have; 1. z=B./A % divide each element of B by corresponding A element 2. if z< 1 % if Z is less than 1 3. A./B*-1 % then divide A element by corresponding B element and multiply by -1 end
but i get no response from matlab. this should be easy but it's not. as always thanks for your time and input jb

Respuesta aceptada

Wayne King
Wayne King el 4 de Jun. de 2013
You don't need an if statement, you can use logical indexing.
A = randn(8,1);
B = randn(8,1);
Z = B./A;
Z(Z<1) = A(Z<1)./B(Z<1).*(-1);
  1 comentario
john borsellino
john borsellino el 4 de Jun. de 2013
wow!! i will give this a try thanks..(seconds later) thankyou wayne king for such a simple answer.logical indexing worked great.

Iniciar sesión para comentar.

Más respuestas (1)

Mark
Mark el 4 de Jun. de 2013
The way you have it, you will only get the if statement to be satisfied if all elements of z are less than one. If you are trying to do this element by element, you could implement a loop through z to just change the ones that are <1.
  1 comentario
john borsellino
john borsellino el 4 de Jun. de 2013
hey mark, could you throw up some code, to explain the loop, thanks jb

Iniciar sesión para comentar.

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