Re: [問題] for迴圈加速

看板MATLAB作者 (彩色筆)時間9年前 (2015/06/17 02:16), 編輯推噓4(407)
留言11則, 4人參與, 最新討論串2/2 (看更多)
MAC OS X更新,MALTAB突然不能用 害我剛剛才更新好 基本上減少for迴圈數量,用矩陣取代 meshgrid是個不錯的func 解析度開太高也會遇到記憶體不足問題 電腦太爛我就不嘗試了 所以我尋找的條件就放寬 不知道有沒有符合需求 這是算微帶線嗎,我看不懂 看你也是交大便宜收500就好 XDDD source code ------------------------------- clear all close all clc % Coding by Sheng-Hsun %---2015/06/16 copyleft --- %parameters e1 = 1; e2 = -62 -100j; vp=3E8; %main function [Reff Ieff lambda] = meshgrid(-62:1:1, -100:1:0, 2:1:20); k0 = 2*pi./lambda; %u1 theta1 = atan( (-Ieff)./(1-Reff) ); alpha1 = k0.*((1-Reff).^2+(Ieff).^2).^0.25.*sin(theta1/2); beta1 = k0.*((1-Reff).^2+(Ieff).^2).^0.25.*cos(theta1/2); %u2 theta2 = atan((100+Ieff)./(62+Reff)); alpha2 = k0.*((62+Reff).^2+(100+Ieff).^2).^0.25.*sin(theta2/2); beta2 = k0.*((62+Reff).^2+(100+Ieff).^2).^0.25.*cos(theta2/2); Z1 = (2*pi*vp)./((alpha1+beta1).*lambda); Z2 = (2*pi*vp)./((alpha2+beta2).*lambda); Q = ((Z1./Z2)+(Z2./Z1)).*0.5; t1 = cos(alpha1).*cosh(beta1).*cos(alpha2).*cosh(beta2); t2 = sin(alpha1).*sinh(beta1).*sin(alpha2).*sinh(beta2); t3 = sin(alpha1).*cosh(beta1).*sin(alpha2).*cosh(beta2); t4 = cos(alpha1).*sinh(beta1).*cos(alpha2).*sinh(beta2); temp1 = t1 + t2 + Q.*(t3+t4); Qur = cos(alpha1).*cosh(beta1).*sin(alpha2).*sinh(beta2); Qui = sin(alpha1).*sinh(beta1).*cos(alpha2).*cosh(beta2); Qdr = sin(alpha1).*cosh(beta1).*cos(alpha2).*sinh(beta2); Qdi = cos(alpha1).*sinh(beta1).*sin(alpha2).*cosh(beta2); temp2 = (Qur-Qui) - Q.*(Qdr-Qdi); err = 2E1; idx1 = find (abs(temp1-1) <= err); idx2 = find (abs(temp2) <= err) ; idx = intersect(idx1, idx2) Re = Reff(idx); Im = Ieff(idx); L = lambda(idx); plot3(L, Re, Im); ※ 引述《leo10843 (這不是末日!!)》之銘言: : 大家好,由於程式底子太差了,所以只能用最笨的方法,直接寫三個for迴圈QQ : 就算讓電腦一直掛著跑,發現還是跑不出來結果。 : 上網爬了些文章,發現不是沒有幫助就是底子太差看不懂@@ : 在此附上程式碼,https://goo.gl/oc4b7R : 請高手們幫忙看程式碼可以改哪裡 : 如果真的讓我跑出結果,奉上1000P幣(稅前) : P.S 如果幫助太踴躍,我只能挑出一位給P幣,太窮了XDD -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 140.113.125.75 ※ 文章網址: https://www.ptt.cc/bbs/MATLAB/M.1434478586.A.80B.html

06/17 11:30, , 1F
基本上要快 請換windows
06/17 11:30, 1F

06/17 12:58, , 2F
Mac或linux會比較慢嗎?
06/17 12:58, 2F

06/17 13:29, , 3F
Linux我不知 Mac我是有聽說會慢 不過不知道為什麼@@ 因
06/17 13:29, 3F

06/17 13:29, , 4F
為matlab主要是針對windows去優化?
06/17 13:29, 4F

06/17 14:04, , 5F
應該是 去跑個bench 就可以大概知道了
06/17 14:04, 5F

06/17 15:15, , 6F
剛試過,R830,i5,win7 professional vs ubuntu12.04,速
06/17 15:15, 6F

06/17 15:15, , 7F
度差不多
06/17 15:15, 7F

06/17 17:05, , 8F
恩...Linux的話不少公司的工作站也需要matlab 我倒是有
06/17 17:05, 8F

06/17 17:06, , 9F
點難相信Matlab不會針對Linux優化到跟Windows一樣好
06/17 17:06, 9F

06/17 19:13, , 10F
運算快超多呀XD 太感謝了~1000P奉上(竟然遇到同校的XD)
06/17 19:13, 10F

06/18 12:19, , 11F
linux跟mac又有差了 mac是最慢的
06/18 12:19, 11F
文章代碼(AID): #1LW6VwWB (MATLAB)
文章代碼(AID): #1LW6VwWB (MATLAB)