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)
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
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.

Melden Sie sich an, um zu kommentieren.

Antworten (1)

Walter Roberson
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
Sanjal C C
Sanjal C C am 30 Jun. 2018
Yeah really sorry.I could not see your comments and I have attached previously my updated code.
Walter Roberson
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

Melden Sie sich an, um zu kommentieren.

Produkte

Community Treasure Hunt

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

Start Hunting!

Translated by