NOMA中常常用到随机用户配对作为对比方案,
所以用比较笨拙的方法实现了一下,
如果有不太对的地方,
还请大家批评指正。
复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45clc; clear variables; close all; %d是用户与基站的距离,也可以换成信道条件,信道增益 d = [10,9,4,3,8,7]; L = length(d); %判断是否是偶数,一般都是偶数,如果是奇数需要进一步处理,处理方法,随机选择一个用户单独占用一个信道。 % r = rem(a,b)返回a除以b后的余数 % r = rem(L,2); %记录配对结果,L/2*2维的矩阵 result = zeros(L/2,2); %matlab的索引是从1开始的 i = 1; %记录已经出现过的下标 index = zeros(L,1); %直到生成所有满足条件的用户对 while i<=L/2 %生成用户1,2下标序号 x = randi(L); y = randi(L); %保证不与先前的随机序号重复 %ismember()是一个向量 %注释掉是因为写在while前不会更新会陷入死循环 % ix = ~all(ismember(index,x)==0); while ~all(ismember(index,[x,y])==0) x = randi(L); y = randi(L); end %在x和y不相等的条件下进行配对结果的更新 if(x~=y) result(i,:)=[x,y]; i=i+1; index(x)=x; index(y)=y; end end
最后
以上就是坚定指甲油最近收集整理的关于随机用户配对——Matlab实现的全部内容,更多相关随机用户配对——Matlab实现内容请搜索靠谱客的其他文章。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复