Determining Quadrants in a Matrix
11 views (last 30 days)
Show older comments
matrix=load('Data');
x=matrix(:,1);
y=matrix(:,2);
if x>0 & y>0
matrix(:,3)=1
elseif x<0 & y>0
matrix(:,3)=2
elseif x<0 & y<0
matrix(:,3)=3
elseif x>0 & y<0
matrix(:,3)=4
elseif x<-128 & y<-128 & x>128 & y>128
'Invalid Values'
end
With this code, I'm trying to put separate points into a matrix. However, my code doesn't do anything with the values as far as I have seen. I was trying to put the quadrant values into a third column so that I could code the script to count all points in each quadrant, so there is a reason for it. If you have any suggestions I would greatly appreciate it.
0 Comments
Accepted Answer
Jan
on 4 May 2015
The if command evaluates the condition as a scalar. This is logical, because what could this mean:
if [true, false]
? Is this true or not? Therefore Matlab inserts a all() in the condition, if the user forgot this. So you have:
if all(x>0 & y>0)
And this is never true. What you want is:
index = (x>0 & y>0);
matrix(index, 3) = 1;
...
The last condition is magic:
elseif x<-128 & y<-128 & x>128 & y>128
You are looking for numbers which are smaller than -128 and larger than 128? You want an or.
See Also
Categories
Find more on Logical in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!