Please urgently if possible I need to solve the following problem
An equation give me graph of some layers at depths z1, z2, z3, and z4 (see attached figure), and I need to break them down (vertical offset) with a constant = z2-z1= z3-z2=z4-z3 (if satisfying this condition), in addition to drowing a vertical line (red line in satisfied location)

 채택된 답변

Star Strider
Star Strider 2022년 9월 30일
Try something like this —
zv = sort(rand(4,1)) % Define 'z' Values
zv = 4×1
0.0231 0.1089 0.3493 0.7581
const = rand % Define Constant Offset
const = 0.0537
figure
plot([0 1], zv*[1 1], '-k', 'LineWidth',1.5)
hold on
plot([1 2], (zv-const)*[1 1], '-k', 'LineWidth',1.5)
hold off
xline(1, '-r', 'LineWidth',2)
linelabels = compose('z%d',numel(zv):-1:1);
text(zeros(size(zv)), zv, linelabels, 'Horiz','left', 'Vert','bottom')
text(zeros(size(zv))+2, zv-const, linelabels, 'Horiz','right', 'Vert','bottom')
set(gca, 'Visible','off') % Hide Axes (Optional)
Define the the ‘zv’ vector as a column vector of increasing values, and define the constant (‘const’) as a single scalar.
.

댓글 수: 4

Thank you Star Strider
it is working but my Matlab version R2014b (old version) so, the command xline is not defined
As always, my pleasure!
Instead of xline then, try this slightly edited version —
zv = sort(rand(4,1)) % Define 'z' Values
zv = 4×1
0.1188 0.4990 0.6504 0.9499
const = rand % Define Constant Offset
const = 0.1647
figure
plot([0 1], zv*[1 1], '-k', 'LineWidth',1.5)
hold on
plot([1 2], (zv-const)*[1 1], '-k', 'LineWidth',1.5)
plot([1 1], ylim, '-r', 'LineWidth',2) % Work-Around For 'xline'
hold off
linelabels = compose('z%d',numel(zv):-1:1);
text(zeros(size(zv)), zv, linelabels, 'Horiz','left', 'Vert','bottom')
text(zeros(size(zv))+2, zv-const, linelabels, 'Horiz','right', 'Vert','bottom')
set(gca, 'Visible','off') % Hide Axes (Optional)
Everything else should work as written. If not, let me know and I will do what I can to solve whatever problems remain.
.
Thank you Star Strider for your always quick response ... well done
Star Strider
Star Strider 2022년 9월 30일
As always, my pleasure!

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

추가 답변 (1개)

Image Analyst
Image Analyst 2022년 9월 30일

0 개 추천

Try xline and yline. You can use the 'LineWidth' and 'Color' option to set up the line thickness and color.

댓글 수: 2

What about the vetical offset?
Image Analyst
Image Analyst 2022년 9월 30일
If the line is not going all the way across the graph, you can use line or plot() to specify the endpoints at whatever x and y values you want, so you'll get line segments.

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

카테고리

도움말 센터File Exchange에서 Simultaneous and Synchronized Operations에 대해 자세히 알아보기

Community Treasure Hunt

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

Start Hunting!

Translated by