這篇文章給大家分享的是有關(guān)MATLAB如何實現(xiàn)并行運算的內(nèi)容。小編覺得挺實用的,因此分享給大家做個參考,一起跟隨小編過來看看吧。
網(wǎng)站建設(shè)哪家好,找創(chuàng)新互聯(lián)!專注于網(wǎng)頁設(shè)計、網(wǎng)站建設(shè)、微信開發(fā)、成都微信小程序、集團企業(yè)網(wǎng)站建設(shè)等服務(wù)項目。為回饋新老客戶創(chuàng)新互聯(lián)還提供了興安盟免費建站歡迎大家使用!
昨
本來我是把全部過程都錄完了的,不過轉(zhuǎn)成GIF后比較大超過2兆了,沒法上傳,所以就錄了部分。
錄地時候忘把patch對象中的EdgeAlpha設(shè)為零的,所以patch的edge把前面的line給遮住了(在程序中我把line放前面了)。如果把patch中的EdgeAlpha設(shè)為0,連線才是紅色的,或者你不用line也行,你直接把EdgeColor的值設(shè)為 'r' 也行。感覺這樣應(yīng)該好看點。
代碼基本和昨天的一致,我只是把plotSTL出的patch對象的FaceAlpha值設(shè)為0了,在循環(huán)中再patch每個小塊。
這里還是放出源碼吧
clc
clear
close all
VertexData= stl2matlab('pig_stl.txt');
hPatch = plotSTL(VertexData,[1 1 0]);
hPatch.FaceAlpha = 0;
view(3)
set(gca,'NextPlot','add')
set(gca,'Clipping','off')
axis off
set(gca,'Units','nor')
set(gca,'Position',[0 0 1 1])
set(gca,'Color',get(gcf,'Color'))
X = VertexData{1};
Y = VertexData{2};
Z = VertexData{3};
for i = 1 : size(X,2)
line( X(:,i) , Y(:,i) , Z(:,i) , 'Color' , 'r' , 'LineWidth' , 0.5)
scatter3( X(:,i) , Y(:,i) , Z(:,i) , 'SizeData' , 20 , 'MarkerFaceColor' , 'y')
patch( X(:,i) , Y(:,i) , Z(:,i) , [1 128/255 128/255] , 'FaceAlpha' , 0.4,'EdgeAlpha' , 0)
drawnow
i
end
來點有用的..
關(guān)于并行運算,我只知道個parfor,和for循環(huán)一樣,parfor也是要搭配一個end。parfor和for循環(huán)的區(qū)別還是很大的。
parfor中不能再嵌套一個parfor
parfor只支持對整數(shù)進行循環(huán)
parfor它不一定是按照順序的(我不知道怎么描述,看下面這個例子吧)
每次循環(huán)都必須要求獨立,也就是說下一次的循環(huán)不能依賴于上一次的循環(huán),這個要求最惱人...
當我們使用parfor時,MATLAB會開若干個workspace,然后把這個循環(huán)分成若干個部分分別分配到那若干個workspace中同時計算。這樣速度就快了好幾倍。不過如果for循環(huán)幾秒就能解決的事,用parfor可能會比for慢。
上面說了parfor下不能嵌套parfor,而我們有兩重循環(huán)怎么辦?解決辦法是外層parfor,內(nèi)層for,或者外層for,內(nèi)層parfor........但是后者很慢....還有一個辦法是把兩層循環(huán)單層循環(huán),such as:
A = magic(2000);
m = size(A,1);
n = size(A,2);
%A = reshape(A , m * n , 1);
tic
parfor k = 1:numel(A)
i = mod(k - 1 , m) + 1;
j = floor( (k - 1) / m ) + 1;
A(k) = A(k) + i * j;% 單個的parfor中只能用向量,你這里寫A(i,j)matlab就不干
end
A = reshape(A,m,n);
Method4 = toc;
感謝各位的閱讀!關(guān)于“MATLAB如何實現(xiàn)并行運算”這篇文章就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,讓大家可以學到更多知識,如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!
當前標題:MATLAB如何實現(xiàn)并行運算
轉(zhuǎn)載來源:http://aaarwkj.com/article42/gghcec.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供建站公司、動態(tài)網(wǎng)站、App設(shè)計、網(wǎng)站建設(shè)、虛擬主機、靜態(tài)網(wǎng)站
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)