How do I plot all values in my IF loop?
조회 수: 3 (최근 30일)
이전 댓글 표시
I am writing a function, which cannot use the findpeaks or islocalmax, to plot all the maximum values on a graph. However with my if loop it plots each maximum value on a different figure
How do I display them all on one figure? Help very much appreciated.
Here is my function:
function [k] = Peak(X,Y)
for k = 2:length(Y)-1
if (Y(k) > Y(k-1) & Y(k) > Y(k+1) & Y(k) >100)
figure
plot(X,Y,X(k),Y(k),'r*')
end
end
end
댓글 수: 2
Monica Mahesh
2022년 6월 13일
편집: Monica Mahesh
2022년 6월 13일
I see blank plot sheet after running this.Can you please help me to get the plot in this program
for k=0:M:M*N;
x=k+y;
m=2;
plot(x,m,'k')
hold on;
end
for k=2:M:M*N;
x=k+y;
m=0;
plot(x,m,'k')
hold on;
end
hold off;
axis([0 12 -0.5 2.5])
Voss
2022년 6월 13일
@Monica Mahesh: You are plotting one point at a time, in which case you'll need a data marker to see the points:
y = 1; % I make up some values here
M = 2;
N = 5;
for k=0:M:M*N;
x=k+y;
m=2;
plot(x,m,'*k'); % use marker '*' for instance
hold on;
end
axis([0 12 -0.5 2.5])
Or, if you want to plot a line to connect those points, you can plot them all at once:
figure();
x = (0:M:M*N)+y;
m = 2*ones(1,numel(x));
plot(x,m,'k')
axis([0 12 -0.5 2.5])
채택된 답변
Image Analyst
2019년 12월 26일
편집: Image Analyst
2019년 12월 26일
Instead of the call to figure, call subplot() instead.
rows = ceil(sqrt(length(Y) - 2)); % Can put this line outside the loop
subplot(rows, rows, k-1); % In the loop, replace figure with this line.
This will make an array of several graphs (axes) all on the same figure.
If you want them all on the same graph/axes, then don't call subplot() at all, but call hold on after plot, and use && instead of &.
function [Peak] = findLocalMaxThreshold(X,Y)
for k = 2:length(Y)-1
if (Y(k) > Y(k-1) && Y(k) > Y(k+1) && Y(k) >100)
plot(X,Y,X(k),Y(k),'r*')
hold on;
end
end
hold off;
end
추가 답변 (0개)
참고 항목
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!

