Adding text to the plot values in the plot

Hi..Am plotting the different values of slopes of lines in a single plot .But I want to indicate each plotted value with the respective line number how can I do this.. previously I am storing slope values in slope(K).. then am using
for k=1:n
plot(slope,'*')
end
Can someone suggest about this...

1 Kommentar

Image Analyst
Image Analyst am 10 Okt. 2011
Why do you need/want the for loop? The plot function call will plot the whole thing - the whole slope array. You're just plotting the whole thing n times.

Melden Sie sich an, um zu kommentieren.

 Akzeptierte Antwort

Walter Roberson
Walter Roberson am 10 Okt. 2011

0 Stimmen

Either use legend(), or text() a label in place somewhere along the line.

9 Kommentare

Gova ReDDy
Gova ReDDy am 10 Okt. 2011
By using legend I tried.
But I was able to plot line joining the points.But how can I denote the points with line number.
can you please tell me this..
Walter Roberson
Walter Roberson am 10 Okt. 2011
for k=1:n
text(x(k),y(k),num2str(k));
end
Gova ReDDy
Gova ReDDy am 11 Okt. 2011
Danx....
Bt when am using this
if (ycoord && xcoord >=0)
Then am getting error like this
"operands to the && operators must be convertible to logical scalar values"
Walter Roberson
Walter Roberson am 11 Okt. 2011
Insufficient information. Your previous code did not show any ycoord or xcoord, and you did not show what you want to do in the situation where the test is true, so I am not able to recommend a solution.
The error you see is consistent with ycoord or xcoord not being scalars. The && operator can only be used with scalars.
Note by the way that your code is equivalent to
if (ycoord ~= 0 && xcoord >=0)
Gova ReDDy
Gova ReDDy am 12 Okt. 2011
Sorry...My code is this
Calculating coordinates for multiple Images
[ycoord,xcoord]=find(Image);
if ((ycoord)>0 &&(xcoord) >0)
calculating slope(k);
else
slope(K)=0;
end;
Walter Roberson
Walter Roberson am 12 Okt. 2011
It is not possible for find() to return 0 or negative coordinates. If it does not find anything, then it returns empty arrays.
find() will, in general, return more than one location. It is not obvious from your code what you want to do with those multiple locations in order to calculate a single slope ?
Gova ReDDy
Gova ReDDy am 20 Okt. 2011
When there is a output(x,y coord) from find() i.e., when there is a line in the current frame of video then it is calculating the slope.
But when there is no line in the current frame of the video then I have to make that frame slope as zero So,how can I make this..
Walter Roberson
Walter Roberson am 20 Okt. 2011
isempty() can tell you whether there was a result from find() or not.
But again, what if there were (say) 5 values found?
Gova ReDDy
Gova ReDDy am 20 Okt. 2011
Am plotting the "slope" value against "frames".
for k = 1 :240 %no.of frames
%Here in loop am extracting the line from each frame then
[ycoord,xcoord]=find(line);%finding the coordinates of line
Ymax(k)=max(ycoord);
Ymin(k)=min(ycoord);
Xmax(k)=max(xcoord);
Xmin(k)=min(xcoord);
slope(k)=(Ymax(k)-Ymin(k)/Xmax(k)-Xmin(k));%slope=y2-y1/x2-x1
end;
plot(slope,'-ro');%plotting slope values of frames
xlabel('Fame number');
ylabel('SLOPE Of Line In the Frame ');
title('SLOPE PLOT of the VIDEO');
when there is no line in the next frame then the slope value should be zero..
else it should calculate the slope value .

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (1)

Gova ReDDy
Gova ReDDy am 24 Okt. 2011

0 Stimmen

This is working
if((isempty(xcoord)=1) && (isempty(xcoord)=1))
then
caluclate slope
else
slope=0;
end

Produkte

Community Treasure Hunt

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

Start Hunting!

Translated by