Troubles with plotting two functions in one graph

I am having troubles with the following code:
function polarisatiecurve
P = 100
I = 0:0.0001:200;
U1 = P/I;
U2 = 800*(I+19)^2 - 2*(I+19)^3;
plot(I,U1,'b',I,U2,'r',[0,100,0,600]);
subplot (1,2,1);
xlabel('Stroom (A)')
ylabel('Spanning (V)')
title('Polarisatiecurve')
axis([0 120 0 4000])
grid on
grid on
end
What I want to do is plot two functions in one graph. The terms 'polarisatiecurve, stroom, spanning' are Dutch and mean polarisation curve, current (stroom) and voltage (spanning). What I want is that it plots two functions in the same graph. Both functions depend on the current I (the 'stroom'). However I can't get it to work. It gave me the following error:
Error using / Matrix dimensions must agree.
Error in polarisatiecurve (line 4) U1 = P/I;
That refers to the following line of code:
I tried converting I to a symbolic expression but that didn't work either. Who knows how to fix it?

 采纳的回答

Few errors: like U1 = P/I. This is invalid operation as I is a matrix. To do this you use '.' operator. Similarly for ^, you will use .^ instead for the operations for matrixes.
function polarisatiecurve
P = 100;
I = 0:0.0001:200;
U1 = P./I;
U2 = 800*(I+19).^2 - 2*(I+19).^3;
plot(I,U1,'b',I,U2,'r'); %,[0,100,0,600]);
%subplot (1,2,1);
xlabel('Stroom (A)')
ylabel('Spanning (V)')
title('Polarisatiecurve')
%axis([0 120 0 4000])
grid on
grid on
end

3 个评论

Thanks but that gave me a new problem I just can't wrap my head around. It shows the the lines the wrong way.
I currently have it this way:
function polarisatiecurve
P = 100;
I = 0:1:30;
U1 = P./I;
U2 = 20*I.^2 - 2*I.^3;
plot(I,U1);
xlabel('Stroom (A)')
ylabel('Spanning (V)')
title('Polarisatiecurve')
grid on
end
That gives me a nice plot of a 100/I= U1. That works. I see everything I need. Now I have the function But when I want to plot U2 in the same graph, it changes the window automatically. And now I can't see anything interesting (I can't see the points where they intersect. What is going on?
So:
plot(I,U1);
that gives me a nice view.
plot(I,U1, I, U2);
That gives me the wrong window and I can't see the interesting parts. What is going on?
The problem is that they intersect between 0 and 0.001 and 0 to 200 is a much bigger range for this. Try this
function polarisatiecurve
P = 100;
I = 0:0.000001:0.001;
U1 = P./I;
U2 = 800*(I+19).^2 - 2*(I+19).^3;
plot(I,U1,'b',I,U2,'r'); %,[0,100,0,600]);
%subplot (1,2,1);
xlabel('Stroom (A)')
ylabel('Spanning (V)')
title('Polarisatiecurve')
axis([0 0.001 0 0.5e6])
grid on
grid on
end
Never mind, I needed to add an axis options after the plotting function. Thank you so much for helping me!

请先登录,再进行评论。

更多回答(0 个)

类别

帮助中心File Exchange 中查找有关 Spline Postprocessing 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by