我有一個matlab問題需要解決。有兩個限制我的空間的向量,x_low和x_high。矩陣pos需要在這個空間內有值,矩陣的每一列都有兩個向量給出的不同邊界。現在我的問題是,蘭迪給兩個整數之間的值,但我需要改變每個列的界限。還有另一種方法來使用randi或不同的matlab函數來做到這一點? 我知道有更好的代碼要做到這一點,但我開始使用MATLAB和我知道做這樣一來,任何援助是值得歡迎的MATLAB函數替換randi生成矩陣
x_low = [Io_low, Iirr_low, Rp_low, Rs_low, n_low]; % vector of constant values
x_high = [Io_high, Iirr_high, Rp_high, Rs_high, n_high]; % vector of constant values
pos = rand(particles, var);
var = length(x_high);
for i = 1: particles % rows
for k = 1: var %columns
if pos(i, k) < x_low(k) || pos(i, k) > x_high(k) % if the position is out of bounder
pos(i, k) = randi(x_low(k), x_high(k), 1); % fill it with a particle whithin the bounderies
end
end
end
你能提供樣本輸入/輸出嗎? – brodoll