matlab算法流程图,MATLAB算法求程序流程图

求程序流程图,谢谢

for ii=1:ceil(MaxSection)

target_in = 0;

target_in(1:count_i(ii),1:7) = target_i(ii,1:count_i(ii),1:7);

flag_display = 0;                   %进行比较标志,0进行比较,1退出比较

max_differ_time = 3;                %允许的最大不同目标间的时间差值

max_differ_vel = 1;

max_differ_magni = 2;

max_differ_range = 1;

num_save_require = N(p_scanmode_1); %当前比较需要获得的目标数,最初“时间”比较为N,

num_save_sucess = 0;                %当前比较后所保存的目标数

pre_num_save_sucess = 0;

num_in = count_i(ii);                 %当前比较输入的目标数

target_in_tem = 0;                  %当前比较输出目标

target_tem = 0;                     %当前比较获得的保存目标

target= zeros(N(p_scanmode_1),NN);    %所有比较后目标

num_save_sucess_sum = 1;

flag_v_compare = 1;

%%%%%%%%%%%%%                %%%%%%%%%%%%%                %%%%%%%%%%%%%

%“时间”比较%                %“时间”比较%                %“时间”比较%

%%%%%%%%%%%%%                %%%%%%%%%%%%%                %%%%%%%%%%%%%

if flag_display == 0 && num_in > num_save_require;

%将前"num_save_require"个时间为正值目标赋值于target_tem

ii=1;               %"num_save_require"个目标

for i=1:num_in

if  ii > num_save_require;

break;

end

if target_in(i,7)>0;

target_tem(ii,1:NN) = target_in(i,1:NN);

ii = ii + 1;

end

end

%target_tem中保存目标的数量

pre_num_save_sucess = ii-1;

left_num = i - 1;

%如果”..“正值目标大于"num_save_require"个,则在本轮进行余下比较(此时剩余的目标中也许存在可能“..”更小目标

if pre_num_save_sucess == num_save_require && left_num ~= num_in;

%1,target_tem中的“num_save_require”个目标按“..”排序

if num_save_require > 1;

for i = 1:num_save_require-1;

for j = i+1:num_save_require;

if target_tem(i,7) > target_tem(j,7);

tem(1:NN) = target_tem(i,1:NN);

target_tem(i,1:NN) = target_tem(j,1:NN);

target_tem(j,1:NN) = tem(1:NN);

end

end

end

end

%2,剩余目标与target_tem中目标“..”比较

for i = 1:num_in;

for j = 1:num_save_require;

result_compare = target_in(i,7) - target_tem(j,7);

if result_compare < 0 && target_in(i,7) > 0;

%最后一个保存的目标被输入目标替代

%前面“num_save_require-1”个目标中一个被目标替代

if j == num_save_require;

target_tem(num_save_require,1:NN)=target_in(i,1:NN);

else

for k=num_save_require:-1:j+1;

target_tem(k,1:NN) = target_tem(k-1,1:NN);

end

target_tem(j,1:NN) = target_in(i,1:NN);

end

break;

elseif result_compare == 0

break;

end

end

end

%3,target_tem和target_in中所有目标间差值在max_differ_..以内的比较,如果

%max_differ_..=0,则严格按大小排序。

if max_differ_time == 0

flag_display = 1;     %此时已经有(num_save_sucess)个目标成功保存

target(num_save_sucess_sum:num_save_sucess_sum + pre_num_save_sucess-1,1:NN)=target_tem(1:pre_num_save_sucess,1:NN);

else

if num_save_require > 1

target_compare = 0;   %比较值

for i = 1:num_save_require-1

if target_tem(num_save_require,7) - target_tem(i,7) < max_differ_time;

target_compare = target_tem(i,7);

break;

end

end

if target_compare ~= 0;             %此刻由于target_tem保存的目标需要比较的数据太相近,所以需要在下轮比较中进行相近数据比较

num_save_sucess = i-1;          %成功保存的数据也因此减小

else

num_save_sucess = i;

target_compare = target_tem(num_save_require,7);

end

else

num_save_sucess = 0;

target_compare = target_tem(num_save_require,7);

end

ii = 1;   %计数下轮比较的输入目标数

for i=1:num_in;

if target_in(i,7) - target_compare <= max_differ_time && target_in(i,7) - target_compare >= 0 && target_in(i,7) >= 0

target_in_tem(ii,1:NN) = target_in(i,1:NN);

ii = ii+1;

end

end

%target_tem经小范围选择后需要写入目标的剩余的目标的数量

num_in = ii-1;

%如果经有差值比较后剩余目标数 与 成功保存的目标数

%等于需要得保存的目标数则不用再进行比较了

if num_save_sucess + num_in == num_save_require;

flag_display = 1;

num_save_sucess = num_save_require;

target(num_save_sucess_sum:num_save_sucess_sum + num_save_sucess-1,1:NN)=target_tem(1:num_save_sucess,1:NN);

num_save_sucess_sum = num_save_sucess_sum + num_save_sucess;

else

target_in = zeros(num_in,NN);

target_in = target_in_tem;

num_save_require = num_save_require - num_save_sucess;

for i=1:num_save_sucess;

target(num_save_sucess_sum+i-1,1:NN)=target_tem(i,1:NN);

end

num_save_sucess_sum = num_save_sucess_sum + num_save_sucess;

num_save_sucess = 0;

target_tem = 0;

target_in_tem = 0;

end

end

%输入目标中的“..”的正值数量刚好等于需要显示的目标的数量(此种情况仅存在于比较数据中存在负数)

elseif  pre_num_save_sucess == num_save_require && left_num == num_in;

flag_display = 1;

target(num_save_sucess_sum:num_save_sucess_sum + pre_num_save_sucess-1,1:NN)=target_tem(1:pre_num_save_sucess,1:NN);

%输入目标中的“..”的正值数量小于需要显示的目标的数量 (此种情况仅存在于比较数据中存在负数)

elseif  pre_num_save_sucess < num_save_require && left_num == num_in;

flag_v_compare = 0;

flag_display = 0;

ii=1;

for i=1:num_in

if target_in(i,7) <= 0;

target_in_tem(ii,1:NN)=target_in(i,1:NN);

ii = ii + 1;

end

end

num_in = ii - 1;

target_in = zeros(num_in, NN);

target_in = target_in_tem;

num_save_require = num_save_require - pre_num_save_sucess;

if pre_num_save_sucess > 0;

target(num_save_sucess_sum:num_save_sucess_sum + pre_num_save_sucess-1,1:NN)=target_tem(1:pre_num_save_sucess,1:NN);

end

num_save_sucess_sum = num_save_sucess_sum + pre_num_save_sucess;

target_tem = 0;

target_in_tem = 0;

end

elseif flag_display == 0 && num_in <= num_save_require;

flag_display =1;

target(num_save_sucess_sum:num_save_sucess_sum + num_in-1,1:NN)=target_in(1:num_in,1:NN);

end

699ba7046c51816a17b33a7caa85f179.png

1

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值