How to plot vertical line when hitting the range?

Hello, I would like to plot four red lines on the figure.
which is on the edge of yellow block.
But, I don't know how to find and plot it.
Attachment is new.mat , included fx, dy, new value.
The blue blocks are all zero and the yellow blocks are all 1.
Thanks.
1.png
load new.mat
contourf(fx,dy,new,'linestyle','none');
ylabel('Range Cell','FontSize',15,'Fontname','Times');
xlabel('Radial Velocity (m/s)','FontSize',15,'Fontname','Times')
set(gca,'FontSize',15,'Fontname','Times');

댓글 수: 2

KSSV
KSSV 2019년 7월 30일
You can insert lines manually or get the points and plot line...this is one of the option.
I would like to automatically select the yellow region.
Thanks.

댓글을 달려면 로그인하십시오.

 채택된 답변

Michael Madelaire
Michael Madelaire 2019년 7월 30일
%% Init
clear all; close all; clc;
cd 'C:\Users\s144117\Desktop\mathworks'
%% Load
load('new')
%% Find boarders
boarders = [];
for i=2:length(new(:,1))-1
column_before = new(i-1, :);
column = new(i, :);
column_after = new(i+1, :);
flag_before = sum(column_before == 1) > 0;
flag = sum(column == 1) > 0;
flag_after = sum(column_after == 1) > 0;
if flag_before == 0 && flag == 1
boarders = [boarders, i-1];
elseif flag == 1 && flag_after == 0
boarders = [boarders, i+1];
end
end
%% Plot
contourf(fx,dy,new,'linestyle','none');
ylim = get(gca, 'ylim');
hold on;
for i=1:length(boarders)
plot([1,1]*fx(boarders(i)), ylim, '-', 'Color', 'red')
end
ylabel('Range Cell','FontSize',15,'Fontname','Times');
xlabel('Radial Velocity (m/s)','FontSize',15,'Fontname','Times')
set(gca,'FontSize',15,'Fontname','Times');

댓글 수: 2

Thank you so much!
Here's a small simplification for releases since 18b - you can call xline to draw the vertical lines instead of having to use the clever plot([1,1]* ...) trick.

댓글을 달려면 로그인하십시오.

추가 답변 (0개)

카테고리

도움말 센터File Exchange에서 Programming에 대해 자세히 알아보기

태그

질문:

2019년 7월 30일

댓글:

2020년 4월 14일

Community Treasure Hunt

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

Start Hunting!

Translated by