[討論] 兩種寫法的時間差異已回收
我們今天LAB要模擬出二維高斯
這是今天上課TA提供我們的寫法
兩個for
--
clc;
clear all;
n = 2;
m = [0;0];
C = [1 1/3;1/3 1];
xx = -5:0.08:5;
xy = -5:0.08:5;
for x1 = 1:length(xx)
for x2 =1:length(xy)
f_x(x1,x2) = exp( (-( [ xx(x1);xy(x2)]-m).'...
*inv(C)*([xx(x1);xy(x2)]-m) )/2)...
/( (2*pi)^(n/2) * (det(C))^(1/2) );
end
end
figure(1)
mesh(xx,xy,f_x)
--
然後這是我回來後
嘗試用meshgrid寫的
一個for
--
clc;
clear all;
x = -5:0.08:5;
y = -5:0.08:5;
m = [0;0];
n = 2;
C = [1 1/3;1/3 1];
[xx yy] = meshgrid(x,y);
[row col] =size(xx);
xxx = reshape(xx,1,row * col);
yyy = reshape(yy,1,row * col);
X = [xxx;yyy];
for i = 1:row*col
f_x(i) = exp( (-( X(:,i)-m )'*inv(C) * ( X(:,i)-m ))/2)...
/( (2*pi)^(n/2) * (det(C))^(1/2) );
end
f_xx = reshape(f_x,row,col);
figure(2)
mesh(xx,yy,f_xx);
--
原本我以為少一個for
跑的時間會少
可是測試的結果不是Q_Q
我想請教版上高手兩個問題
1.為什麼跑的時間跟我想的不一樣(少一個for會減少時間)??
2.對於我自己修改的code 可以怎麼修讓他更快呢??
謝謝
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.113.68.202
※ 編輯: CCT63 來自: 140.113.68.202 (03/09 22:10)
→
03/09 23:01, , 1F
03/09 23:01, 1F
→
03/09 23:02, , 2F
03/09 23:02, 2F
→
03/09 23:06, , 3F
03/09 23:06, 3F
推
03/10 00:35, , 4F
03/10 00:35, 4F
→
03/13 16:42, , 5F
03/13 16:42, 5F
→
03/13 16:42, , 6F
03/13 16:42, 6F
→
03/13 16:43, , 7F
03/13 16:43, 7F
→
03/13 16:43, , 8F
03/13 16:43, 8F
推
03/14 20:27, , 9F
03/14 20:27, 9F
→
03/14 20:27, , 10F
03/14 20:27, 10F
→
03/17 22:16, , 11F
03/17 22:16, 11F