Help with Matalab code in detecting sign change in a Vector

If i have a vector for example X[M,N] and I want to get a new vector with values of 1 if there is a sign change across the values of N for every M row and a 0 if not then how do I write this code conditional to the N1*N2 ... Nn*Nn+1<0 So what I am after is a new vector with only M columns of 1 and 0 1 if there is a sign change across my Ns (conditional to Nn*Nn+1<0) 0 if there is no sign change across my Ns using function any thanks

Antworten (3)

First part:
C = sign(diff(A, [],2))% size(M, N-1); %1 for positive, 0 for no change, -1, for negative
Second part
D =any(C==-1, 2);
Iain
Iain am 3 Mär. 2014
minsign = sign(min(A));
maxsign = sign(max(A));
answer_vector(numel(minsign)) = false;
answer_vector(minsign==-1 & maxsign==1) = true;
answer_vector(minsign==1 & maxsign==-1) = true;
That works for columns. Transpose A, or use the additional arguments available to min & max to do it for rows.
Lanz500
Lanz500 am 6 Mär. 2014

0 Stimmen

Hello guys and thanks so much for your help really appreciated

Kategorien

Mehr zu Genomics and Next Generation Sequencing finden Sie in Hilfe-Center und File Exchange

Tags

Gefragt:

am 24 Feb. 2014

Beantwortet:

am 6 Mär. 2014

Community Treasure Hunt

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

Start Hunting!

Translated by