Why the function like (1 - cosd(x)) / cosd(x) doesn't create an vector and can't plot?
2 次查看(过去 30 天)
显示 更早的评论
I want to plot an function for relative deviation but I got the problem to create the vector. I cant plotting anything.
I try to have on the x-axis the angle in GRAD and on the y-axis the relativ deviation in %.
Do you know where there problem is? I got the following code:
x=-25:0.1:25;
%Grad in Bogenmaß
R = deg2rad(x);
%sin und cos in degree sind sind() und cosd()
F_rel_a = (R - sind(x))/sind(x);
F_rel_c = (1 - cosd(x))/cosd(x);
%%% y = F_rel_a * 100; %not in use
%plotting
figure
plot(x, F_rel_a)
hold on
plot(F_rel_c)
hold off
%%% axis([-25 25 0 2]) %not in use
xlabel('Pendelwinkel in Grad [°]');
ylabel('Relative Abweichung in [%]');
legend({'$sin(\varphi) \approx \varphi$', '$cos(\varphi) \approx 1$'},'Interpreter','latex')
1 个评论
Stephen23
2023-3-2
"Do you know where there problem is?"
Not using the correct operator: https://www.mathworks.com/help/matlab/matlab_prog/array-vs-matrix-operations.html
采纳的回答
Bruno Luong
2023-3-1
编辑:Bruno Luong
2023-3-1
Change / to ./, the "/" is matrix left-division and does something you won't expect for vectors
x=-25:0.1:25;
%Grad in Bogenmaß
R = deg2rad(x);
%sin und cos in degree sind sind() und cosd()
F_rel_a = (R - sind(x))./sind(x);
F_rel_c = (1 - cosd(x))./cosd(x);
%%% y = F_rel_a / 100; %not in use
%plotting
figure
plot(x, F_rel_a)
hold on
plot(F_rel_c)
hold off
%%% axis([-25 25 0 2]) %not in use
xlabel('Pendelwinkel in Grad [°]');
ylabel('Relative Abweichung in [%]');
legend({'$sin(\varphi) \approx \varphi$', '$cos(\varphi) \approx 1$'},'Interpreter','latex')
更多回答(1 个)
Torsten
2023-3-1
%sin und cos in degree sind sind() und cosd()
F_rel_a = (R - sind(x))./sind(x)
F_rel_c = (1 - cosd(x))./cosd(x)
instead of
%sin und cos in degree sind sind() und cosd()
F_rel_a = (R - sind(x))/sind(x)
F_rel_c = (1 - cosd(x))/cosd(x)
另请参阅
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!