為什麼這篇matlab for迴圈優化鄉民發文收入到精華區:因為在matlab for迴圈優化這個討論話題中,有許多相關的文章在討論,這篇最有參考價值!作者jack10313 (彩色筆)看板MATLAB標題Re: [問題] for迴圈加速時間Wed J...
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