Why does this split of the plot lines doesn't work?

조회 수: 7 (최근 30일)
Fabian Rüeger
Fabian Rüeger 2017년 1월 6일
편집: John BG 2017년 1월 10일
x = linspace(0,8.7,1000)
a = zeros (1,1000)
b = zeros (1,1000)
c = zeros (1,1000)
d = zeros (1,1000)
hold on;
grid on;
%////////////////////////////////////////////////Fall 1///////////////////
figure(1);
for i = 1:1000
a(i) = 6.5*4000./((6.5-x(i)));
b(i) = 10500
c(i) = 6.5*9500./((x(i)));
d(i) = 500./(x(i)-6.5);
if a(i)<b(i)
plot(x,a,'.')
end
if d(i)<c(i)<b(i)
plot(x,c,'.')
end
if d(i)<c(i)
plot(x,d,'.')
end
plot(x,b,'.')
end
axis([0 10 0 12000])

채택된 답변

John BG
John BG 2017년 1월 9일
편집: John BG 2017년 1월 10일
the graph function is not the same as in grafik.png and the lower area needs some improvement, but would you consider the following a start point?
x=[1:1:100];y1=x([1:1:30]);y2=x(3)*ones(1,20);y3=x([30:-1:1]);y4=zeros(1,20);
y=[y1 y2 y3 y4];y=y+10;plot(x,y,'r')
patch('XData',x,'YData',y,'FaceColor','red','LineStyle','none')
axis([0 numel(x) 0 max(y)+5])
z=y-3; % lift
delay=7
z([1:1:end-delay+1])=z([delay:1:end]) % advance
hold all
plot(x,z,'b')

추가 답변 (3개)

Walter Roberson
Walter Roberson 2017년 1월 6일
if d(i)<c(i)<b(i)
means the same as
if ((d(i)<c(i))<b(i))
The calculation d(i)<c(i) returns back 0 (false) or 1 (true), and you then compare that 0 or 1 to b(i)
  댓글 수: 1
Walter Roberson
Walter Roberson 2017년 1월 7일
Fixing the if and adding some semi-colons produces a reasonable looking graph.

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


John BG
John BG 2017년 1월 7일
편집: John BG 2017년 1월 7일
Herr Rüger
I am confident I can supply the correct answer, but i kindly ask for some clarification.
Dein script, with lines instead of dots, i have nur reduced the amount of points from 1000 down to 10:
x = linspace(0,8.7,10)
a = zeros (1,10)
b = zeros (1,10)
c = zeros (1,10)
d = zeros (1,10)
for i = 1:10
a(i) = 6.5*40./((6.5-x(i)));
b(i) = 105
c(i) = 6.5*95./((x(i)));
d(i) = 5./(x(i)-6.5);
if a(i)<b(i)
subplot(2,2,1);plot(x,a');axis([0 10 0 120]);grid on;hold all
end
if d(i)<c(i)<b(i)
figure(2);subplot(2,2,2);plot(x,c');axis([0 10 0 120]);grid on;hold all
end
if d(i)<c(i)
subplot(2,2,3);plot(x,d');axis([0 10 0 120]);grid on;hold all
end
subplot(2,2,4);plot(x,b');axis([0 10 0 120]);grid on;hold all
end
.
Aso, would you please define 'split' in the context of deine frage?
thanks for time and attention, awaiting comment
John BG

Fabian Rüeger
Fabian Rüeger 2017년 1월 7일
편집: Fabian Rüeger 2017년 1월 7일
Thank you for your answers. The final plot should look like this:->grafik.png
The diagramm describes a weight distribution of a lorry.
  댓글 수: 1
John BG
John BG 2017년 1월 7일
편집: John BG 2017년 1월 7일
ok, so your question is not about splitting a plot, but how to add a shadow, to reproduce grafik.m in MATLAB, oder?

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

카테고리

Help CenterFile Exchange에서 Creating, Deleting, and Querying Graphics Objects에 대해 자세히 알아보기

Community Treasure Hunt

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

Start Hunting!

Translated by