2014-01-28 72 views
0
clear all 
close all 
no_of_processors=5; 
task_matrix=zeros(no_of_processors,3); 
for i=1:no_of_processors 
Burst_time=randi(20); 
% Priority = minValue + (maxValue-minValue)*randi(5); 
Priority=randi(5);`` 
task_matrix(i,:)=[i Burst_time Priority]; 
end 



disp('Processors Burst_time Priority'); 
disp('....................................'); 
disp(task_matrix); 

這是我的代碼來產生隨機突發時間和優先級,這裏的東西是我得到隨機優先級,這是重複。我需要不應該重複的優先權。任何人都可以幫助我。任何人都可以幫助我啓動一個時間段?在matlab中循環調度

+0

我使用的是randperm,但是這並沒有幫助,當涉及到這一行「task_matrix(i,:)= [i Burst_time Priority];」它將錯誤顯示爲下標分配維度不匹配。 – user3239872

回答

0

您需要使用:

rng('shuffle'); 

隨機

RNG(SD)種子使用非負整數隨機數發生器SD之前使蘭特蘭迪,和randn產生可預測的數字序列。

RNG(「洗牌」)種子根據當前時間,以便蘭特,蘭迪,並randn產生以後每次不同的序列號的隨機數生成器調用RNG

0
randperm(no_of_processors) 

創建數字1到5的隨機排列,避免重複值。

+0

是的,我做到了,但是當涉及到這一行「task_matrix(i,:)= [i Burst_time Priority];」它將錯誤顯示爲下標分配維度不匹配。 – user3239872

+0

'優先級= randperm(no_of_processors)'產生一個優先級爲所有五個處理器的向量,你必須使用'優先級(i)' – Daniel

+0

感謝您的幫助,但是也獲得了相同的重複優先級。 – user3239872