MATLAB Answers

How can I classify data based on two columns??

13 views (last 30 days)
Mohammed Alammar
Mohammed Alammar on 1 Dec 2019
Answered: Luna on 2 Dec 2019
hi ,
I have a data as shown below, I need to classify it based on the rho and theta.
I am looking to plot complete line by extract start and end of point for lines . so i need to classfy as follw:
groups : have the same rho and inside it two groups : 1- when theta = -90 which is hirozental line.
2- when theta = 0 which is vertical line.
I have tried that but there somthing wrong which ('Index exceeds the number of array elements (19)')
Capture.JPG could you please help me??


Image Analyst
Image Analyst on 1 Dec 2019
Yes, if you supply your code and the exact error message. Perhaps you took a list of indexes and used it on the columns instead of the rows or something. Who knows???
Mohammed Alammar
Mohammed Alammar on 1 Dec 2019
% reconstructedImage_Measurements of lines;
% Number of tiles in the vertical (time) dimension
Nt = 500;
% Number of tiles in the horizontal (frequency) dimension
Nf = 1000;
for m = 1: length(lines)
if (lines(m).theta==lines(m+1).theta) && (lines(m).rho==lines(m+1).rho)
if XY(1,1)==XY(2,1) && (lines(m).theta ==-90)
XY(:,2)= wz;
elseif XY(1,2)==XY(2,2) && (lines(m).theta ==-90)
XY(:,1)= wz;
elseif XY(1,1)==XY(2,1) && (lines(m).theta ==0)
XY(:,2)= hz;
elseif XY(1,2)==XY(2,2) && (lines(m).theta ==0)
XY(:,1)= hz;
Luna on 2 Dec 2019
Can you provide the data as a .mat file attached?

Sign in to comment.

Answers (1)

Luna on 2 Dec 2019
Your error caused from the line for loop. You have 19 elements but m+1 will be 20.
for m = 1:length(lines)-1
This will fix your problem.


Sign in to comment.

Community Treasure Hunt

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

Start Hunting!