Fixing my counter statement.

9 visualizzazioni (ultimi 30 giorni)
BaconSwordfish
BaconSwordfish il 1 Mag 2015
Risposto: John D'Errico il 1 Mag 2015
So I have two arrays (x and y) that are 324 long columns. I need to separate the each pair(x,y) of points into what quadrant the point falls into when graphed. For example if the first x and y are (-3,4) I need to put that point into an array of the other points in the data that fall in quadrant two. What am I doing wrong?
Q=[x y];
for counter=1:length(Q)
if x(counter)>0 && y(counter)>0
Q1=[x(x>0) y(y>0)'];
end
if x(counter)<0 && y(counter)>0
Q2=[x(x<0) y(y>0)'];
end
if x(counter)<0 && y(counter1)<0
Q3=[x(x<0) y(y<0)'];
end
if x(counter)>0 && y(counter1)<0
Q4=[x(x>0) y(y<0)'];
end
end

Risposta accettata

the cyclist
the cyclist il 1 Mag 2015
I would do it like this:
% Some pretend data
x = rand(324,1) - 0.5;
y = rand(324,1) - 0.5;
% First quadrant
Q1_index = (x>0) & (y>0);
Q1 = [x(Q1_index) y(Q1_index)]
% similar code for the other three quadrants ...

Più risposte (1)

John D'Errico
John D'Errico il 1 Mag 2015
Why all the tests?
whichQuadrant = @(x,y) 1 + floor(mod(atan2d(y,x)/90,4));

Categorie

Scopri di più su Operators and Elementary Operations in Help Center e File Exchange

Prodotti

Community Treasure Hunt

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

Start Hunting!

Translated by