我必須生成一個 nxn 均勻分布的亂數矩陣(n 從鍵盤讀取)。數字應該在 [0,1] 之間,然后平均數字 > 0.5。我嘗試了以下方法:
value = 'Insert a value for n: ';
x = input(value);
matrix = rand(x,x);
matrix2(matrix < 0.5) = nan;
average = mean(matrix2, 'omitnan');
disp(average);
運行代碼后,我得到平均值為 0,我不知道為什么。
uj5u.com熱心網友回復:
在您的代碼中,該行matrix2(matrix < 0.5) = nan;是您第一次提到matrix2,因此這實際上創建了matrix2. 這種“創造”索引語法最終建立matrix2具有相同大小matrix,填充元素,其中matrix < 0.5有nan,它實際上將保留其他元素0。
你想要的是從matrix2的副本開始matrix,然后設定元素,換句話說
matrix2 = matrix;
matrix2(matrix2 < 0.5) = nan;
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/408957.html
標籤:
上一篇:用數值替換符號時變變數
