Hi!.Can anyone please help me how to get rid of this errors.I herby attach my code and the errors.
2 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
function [xfar_in,yfar_in] = fartheta(y_veh, x_veh)
% c=0.0100;
% error_in=0;
% amplitude=1;
% xfar_in=zeros(2,1);
% yfar_in=zeros(2,1);
% xin_new=zeros(2,1);
% yin_new=zeros(2,1);
% slope_in=zeros(2,1);
% slope_curve_in=zeros(2,1);
x_save = zeros(2,1);
y_save = zeros(2,1);
% coder.varsize('x_save',[1, 2 * length(x_veh)]);
% coder.varsize('y_save',[1, 2 * length(y_veh)]);
% error_in = 0.001;
% xin_new = x_veh;
% yin_new = y_veh;
for i = 1:length(x_veh)
xin_new = x_veh(i);
yin_new = y_veh(i);
error_in = 0.001;
while error_in>=0
xin_new = xin_new + 0.01;
yin_new = 1*sin(2*pi*xin_new/25);
slope_in = (yin_new-y_veh)/(xin_new-x_veh);
slope_curve_in = (1*2*pi/25)*cos(2*pi*xin_new/25);
error_in = slope_curve_in-slope_in;
xin_new = xin_new+0.01;
end
x_save = [x_save;xin_new];
y_save = [y_save;yin_new];
end
xfar_in = x_save;
yfar_in = y_save;
% xfar_in = xin_new;
% yfar_in = yin_new;
% d_in = sqrt(((x_veh-xfar_in)^2) + ((y_veh-yfar_in)^2));
%
% m1=tan(hdg);
% m2=(y_veh-yfar_in)/(x_veh-xfar_in);
% farangle=atan((m1-m2)/(1+m1*m2));
1 Kommentar
Joe Jones
am 12 Jul. 2022
Dear
Did you solve this problem ?
I also had this problem recently. "An error occurred while propagating data type 'double' through 'adrc/cg_adrc'". (the last problem in the attached picture 'erroes.JPG')
Hope you can help me if possible. Thank you.
Antworten (1)
Walter Roberson
am 30 Jun. 2018
You need to preallocate the output variable and assign into the appropriate locations in it, instead of dynamically growing your array.
10 Kommentare
Walter Roberson
am 30 Jun. 2018
Maybe you want something like,
function [xfar_in,yfar_in] = fartheta(y_veh,x_veh,error_in)
nveh = length(x_veh);
x_save = zeros(1, nveh);
y_save = zeros(1, nveh);
for i = 1:nveh
xin_new = x_veh(i);
yin_new = y_veh(i);
error_in = 0.001;
while true
xin_new = xin_new + 0.01;
yin_new = 1*sin(2*pi*xin_new/25);
slope_in = (yin_new-y_veh(i)) ./ (xin_new-x_veh(i));
slope_curve_in = (1*2*pi/25)*cos(2*pi*xin_new/25);
error_in = slope_curve_in-slope_in;
if error_in <= 0
break;
end
xin_new = xin_new+0.01;
end
x_save(1,i) = xin_new;
y_save(1,i) = yin_new;
end
and here calculate xfar_in and yfar_in
Siehe auch
Produkte
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!