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

 Akzeptierte Antwort

Wayne King
Wayne King am 4 Jun. 2013

0 Stimmen

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 Kommentar

john borsellino
john borsellino am 4 Jun. 2013
wow!! i will give this a try thanks..(seconds later) thankyou wayne king for such a simple answer.logical indexing worked great.

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (1)

Mark
Mark am 4 Jun. 2013

0 Stimmen

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 Kommentar

john borsellino
john borsellino am 4 Jun. 2013
hey mark, could you throw up some code, to explain the loop, thanks jb

Melden Sie sich an, um zu kommentieren.

Kategorien

Mehr zu MATLAB finden Sie in Hilfe-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