[讨论] 想要更改原定的迭代顺序

楼主: since2009yj5 (銀牙裂虎S)   2018-02-21 14:24:40
大家好
小弟最近在写程式码遇到了一些问题
我的程式码是做资源分配
假定3个用户以及10个子载波来分配
function N_sp = SP_Subcarrier_Allocation(K, N, B,P_total, CNR_k_n)
K = 3 ;
N = 10 ;
B = 1*10^6 ;
CNR_k_n = rand(K, N)
N_used1 = zeros(1, N) ;
K_used1 = zeros(1, N) ;
N_mf1 = zeros(K, N) ;
for k = 1:K
CNR_max = 0 ;
N_maxcnr = 0 ;
for n = 1:N
% n
if ((N_used1(1, n) == 0) & (CNR_k_n(k, n)) >= CNR_max)
CNR_max = CNR_k_n(k,
n)
% CNR_max
N_maxcnr = n ;
% N_maxcnr
end
end
N_used1(1, N_maxcnr) = 1
% N_used1
K_used1(1, N_maxcnr) = k
% K_used1
N_mf1(k, N_maxcnr) = 1
% N_mf1
end
end
由于CNR我是随机产生的
但我必定先假设用户顺序才可以产生
而每个用户产生出来的CNR和
我想要根据其 CNR和 由小到大去做迭代
但不知道在"for k = 1:K" 这一行要怎么去做改变
我有尝试用if写过 但还是失败
因此想请教一下版上的高手们
感谢!!
作者: LiamIssac (Madchester)   2018-02-21 15:02:00
还是用k=1:K 但是把CNR sort一下找出index类似 [value, index] = sort(CNR, 'ascend')

Links booklink

Contact Us: admin [ a t ] ucptt.com