How can I classify data based on two columns??

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??

3 件のコメント

Image Analyst
Image Analyst 2019 年 12 月 1 日
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 2019 年 12 月 1 日
%%
% reconstructedImage_Measurements of lines;
% Number of tiles in the vertical (time) dimension
Nt = 500;
% Number of tiles in the horizontal (frequency) dimension
Nf = 1000;
wz=[1;Nf];
hz=[1;Nt];
for m = 1: length(lines)
if (lines(m).theta==lines(m+1).theta) && (lines(m).rho==lines(m+1).rho)
XY=[lines(m).point1;lines(m+1).point2];
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;
end
else
XY=[lines(m).point1;lines(m).point2];
end
plot(XY(:,1),XY(:,2),'LineWidth',2,'Color','red');
end
Luna
Luna 2019 年 12 月 2 日
Can you provide the data as a .mat file attached?

サインインしてコメントする。

回答 (1 件)

Luna
Luna 2019 年 12 月 2 日

0 投票

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

カテゴリ

ヘルプ センター および File ExchangeMatrices and Arrays についてさらに検索

質問済み:

2019 年 12 月 1 日

回答済み:

2019 年 12 月 2 日

Community Treasure Hunt

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

Start Hunting!

Translated by