Plotting multiple vertical lines with a for loop

10 ビュー (過去 30 日間)
Cian McAuley
Cian McAuley 2020 年 10 月 21 日
コメント済み: Cian McAuley 2020 年 10 月 21 日
I need to plot vertical lines on a graph at points defined from an array imported from an excel file.
Samples = xlsread('ProjectData.xlsx','Sampling Strategy','A6:B44');
SampleDepth = Samples(:,2);
for i = 1:SampleDepth
xline(i);
end
SampleDepth is a 29x1 double. I need it to plot a vertical line (hence using xline) for each depth specified. I thought that using a for Loop like this would therefore plot a vertical line at each specified point, but Matlab returns:
Error using xline (line 29)
Must pass in a value.
Error in IsotopeGraphs (line 24)
xline()
What needs to be done to fix this? Can xline even be used like this or does it not work?
  2 件のコメント
KSSV
KSSV 2020 年 10 月 21 日
You cannot draw a line with single point..you need to have two points...read the documentation.
what is xline by the way?
Cian McAuley
Cian McAuley 2020 年 10 月 21 日
You do not need two points to draw a line if you use the function xline() or yline(), which will draw a straight line perpendicular to that axis at the specified point.

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

回答 (3 件)

Ameer Hamza
Ameer Hamza 2020 年 10 月 21 日
You seem to have a function named xline() which is shadowing the built-in function xline(). Check the output of
which xline
and if it is not something like
.../toolbox/matlab/specgraph/xline.m
then change its name to something else.

Chenguang Yan
Chenguang Yan 2020 年 10 月 21 日
Try this
sz = size(SampleDepth,1);
for i = 1:sz
xline(SampleDepth(i));
end

Andy
Andy 2020 年 10 月 21 日
SampleDepth is a matrix so cannot be used to generate the for loop.
I think you meant to use the length of SampleDepth
for i = 1:length(SampleDepth)

カテゴリ

Help Center および File ExchangeMATLAB Compiler についてさらに検索

製品


リリース

R2020b

Community Treasure Hunt

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

Start Hunting!

Translated by