2016-12-14 81 views
0

我想計算不在圓圈內的外部點數。但我有這個問題。我的圈子是單位圈。我的錯誤是:外部臨時變量將在parfor循環的每個迭代 開始時被清除。使用帶有臨時變量的parfor

function [ ] = girkoson(N,n) 
%UNTİTLED Summary of this function goes here 
% Detailed explanation goes here 
hold on 
outside = 0; 
parfor i=0:N 
    E=ones(N,n); 
    karekok = sqrt(n); 
    E = [E, eig(randn(n))/karekok]; 
    a=real(E); 
    b= imag(E); 
    plot(a,b,'.r'); 
     if (a>= -1) | (a<=1) | (b>=-1) | (b<=1) 
     outside = outside +1; 
     fprintf('%f',outside); 
     end 
end 

derece=0:0.01:2*pi; 
xp=1*cos(derece); 
yp=1*sin(derece); 
x=0;y=0; 
plot(x+xp,y+yp,'-b'); 
hold off 
end 
+0

什麼問題?你只是在這裏丟棄你的代碼。你的問題是什麼? – Adriaan

+0

我剛剛編輯 – Bertug

回答

0

它看起來像你試圖把outsideparforreduction變量。循環期間無法訪問還原變量的中間值 - 只能執行還原。換句話說,行fprintf('%f', outside)是造成這個問題,你必須刪除這個parfor循環工作。

另請注意,在您的parfor循環體上操作的工作人員無法在桌面上顯示圖形,因此您的plot調用不會在屏幕上顯示任何內容。 (如果您願意,您可以使用print將圖形發送到文件)。

+0

我沒有使用打印,因爲情節可以顯示圓和點。 – Bertug