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

4 vues (au cours des 30 derniers jours)
Fabian Rüeger
Fabian Rüeger le 6 Jan 2017
Modifié(e) : John BG le 10 Jan 2017
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])

Réponse acceptée

John BG
John BG le 9 Jan 2017
Modifié(e) : John BG le 10 Jan 2017
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')

Plus de réponses (3)

Walter Roberson
Walter Roberson le 6 Jan 2017
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 commentaire
Walter Roberson
Walter Roberson le 7 Jan 2017
Fixing the if and adding some semi-colons produces a reasonable looking graph.

Connectez-vous pour commenter.


John BG
John BG le 7 Jan 2017
Modifié(e) : John BG le 7 Jan 2017
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 le 7 Jan 2017
Modifié(e) : Fabian Rüeger le 7 Jan 2017
Thank you for your answers. The final plot should look like this:->grafik.png
The diagramm describes a weight distribution of a lorry.
  1 commentaire
John BG
John BG le 7 Jan 2017
Modifié(e) : John BG le 7 Jan 2017
ok, so your question is not about splitting a plot, but how to add a shadow, to reproduce grafik.m in MATLAB, oder?

Connectez-vous pour commenter.

Catégories

En savoir plus sur Creating, Deleting, and Querying Graphics Objects dans Help Center et File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by