寫代碼要用心

1.循環中要尋找的座標一定要單獨設個變量,雖然這個道理很簡單,但是很容易忘記

在我的SecondAllocation.m文件中的之所以會出現邏輯上的錯誤——一個子載波分配給2個用戶,就是出在這個問題上

TempUserIDChangeB = find(FirstAllocation(:,SubChangeAfter) == 1);
%這裏不能使用TempUserIDB因爲TempUserIDB是循環更新的
%之前用的TempUserIDB,造成在以後的循環中會出現,由子載波提取用戶信息的時候,出現用戶是個2列向量,報錯
TempUserIDChangeA = find(FirstAllocation(:,SubChangeBefore) == 1);

2.在判斷兩個矩陣相等的時候用 == 不如用isequal(A,B)方便,用 == 返回的是相等元素的位置,相等的話相應的位置上位1,不相同的話相應位置上爲0

isequal(A,B)返回的是:1或0,相同的時候返回1,不同的時候返回0.

3.誤碼率可以出現10的 -0.5、-1.5等小數信息,但是不能用1e-1.5。

具體的循環可以使用

for i = -0.5:-0.5:-5
pe = 10^i;
end

這樣的好處是可以使曲線畫得更爲細膩。

 

PS:今天在寫代碼的時候,寫到最後真的是遇到瓶頸了,不知道怎麼進行了。讓我想到了翟師兄的話,先搞懂邏輯,再去改。哎,自己的通信水平實屬薄弱,當初只是學的皮毛,用起來力不從心啊。

先搞懂,通信的常用的基本公式,然後再去調用算法。

加油!!不懈的堅持

 

 

 

發佈了56 篇原創文章 · 獲贊 2 · 訪問量 2萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章