目前分類:Matlab (4)

瀏覽方式: 標題列表 簡短摘要
% 日期: 2012.0212
% 編者: JK
% 版本: ed1.1
% matlab: 7.0
%------------------------------
% plot 對於兩點是同座標是無法plot出來 所以這裡不使用plot方法來繪圖
% 而採用 annotation('arrow',[xx_pre xx_pre],[yy_preyy],'LineStyle','-','color',arrow_color); %標註箭頭 , arrow_color=[r g b]

clc;
clear;
[x y c]=textread('H:\txtTocsv_20111112_N07_eye+hand_05.csv' ,' %s %s %s', 'delimiter', ',' ,'whitespace','' );

nn_all=length(x) ;

aX=[0];
aY=[0];
%aP=[x y] ;
arrow_color=[1 0 0];
xx=0;
xx_pre=0;
yy=0;
yy_pre=0;

color_deep=1.0 ;
thesame_count=0.005; % 預設線寬 2 pt
for i=(3+1) : (nn_all-2) %第3點以後才有座標點 >> 從第(3+1)點開始掃描

%----分7組 顏色控制------------------
if (i>60*0) && (i<60*1)
arrow_color=[color_deep 0 0] ;
end
if (i>60*1) && (i<60*2)
arrow_color=[0 color_deep 0] ;
end
if (i>60*2) && (i<60*3)
arrow_color=[0 0 color_deep] ;
end
if (i>60*3) && (i<60*4)
arrow_color=[0 color_deep color_deep] ;
end
if (i>60*4) && (i<60*5)
arrow_color=[ color_deep 0 color_deep] ;
end
if (i>60*5) && (i<60*6)
arrow_color=[ color_deep color_deep 0 ] ;
end
if (i>60*6) && (i<60*7)
arrow_color=[ color_deep color_deep color_deep ] ;
end
%-----/分7組 顏色控制/---------------------




%/-----------分顏色深淺畫箭頭-----------------------------
xx=str2double( x(i) ) ;
yy=1- str2double( y(i)); % y軸反向 (改要以左下為原點)
xx_pre=str2double( x(i-1) ) ;
yy_pre=1- str2double( y(i-1)); % y軸反向 (改要以左下為原點)

if (xx==xx_pre && yy==yy_pre)

annotation('rectangle',[xx yy thesame_count thesame_count] );% 對重複的位置做矩行標記 重複愈多次標記矩型越大
annotation('line',[xx_pre xx+0.005],[yy_pre yy+0.005],'LineStyle','-','Linewidth',2,'color',arrow_color); %標註箭頭 , arrow_color=[r g b]
thesame_count=thesame_count+0.005 ;% 若有重複點 加寬線寬

else
thesame_count=0.005;
annotation('line',[xx_pre xx],[yy_pre yy],'LineStyle','-','Linewidth',2,'color',arrow_color); %標註箭頭 , arrow_color=[r g b]
annotation('textarrow',[xx_pre xx],[yy_pre yy],'LineStyle','-','Linewidth',2,'color',arrow_color); %標註箭頭 , arrow_color=[r g b]

end


color_deep= color_deep- (1/60) ; % 同組色內分深淺 60點為一組

if (color_deep < 0)
color_deep=1 ;
thesame_count=0.005;
end % end if
%------------/分顏色深淺畫箭頭/-----------------------------------
end % end for


xlabel('(x)'); %水平座標名稱
ylabel('(y)'); %垂直座標名稱
grid on;

prague12 發表在 痞客邦 留言(1) 人氣()

clc;
clear;
[x y ]=textread('H:\xy.csv' ,'%s %s' );
nn=length(x) ;

for i=2: nn

xx=str2double( x(i) );
yy=str2double( y(i));
plot(xx ,yy,'--p') ;
%plot(xx,yy,'--rs','LineWidth',1, 'MarkerEdgeColor','k', 'MarkerFaceColor','g','MarkerSize',5)
hold on ;
end

xlabel('(x)'); %水平座標名稱
ylabel('(y)'); %垂直座標名稱
grid on;

prague12 發表在 痞客邦 留言(2) 人氣()

http://www.cs.nthu.edu.tw/~jang/mlbook/ch2/

prague12 發表在 痞客邦 留言(0) 人氣()

function out = gaussian(data, mu, sigma);
% gaussian: Multi-dimensional Gaussian propability density function
% Usage: out = gaussian(data, mu, sigma)
% data: d x n data matrix, representing n data vector of dimension d
% mu: p x 1 vector
% sigma: p x p matrix
% p x 1 or 1xp vector
% 1 x 1 scalar
% out: 1 x n vector
%
% Type "gaussian" for a self demo.

% Roger Jang, 20000602

if nargin==0, selfdemo; return; end
if length(mu)==1, data = data(:)'; end

[dim, dataNum]=size(data);
if dim~=size(mu,1)|size(mu,2)~=1, error('Sizes mismatch!'); end

if size(sigma,1)*size(sigma,2)==dim,
sigma=diag(sigma);
elseif size(sigma,1)*size(sigma,2)==1,
sigma=sigma*eye(dim);
end

invSigma = inv(sigma); % For repeated invocation of this function, this step may be moved out of this function
dataMinusMu = data-mu*ones(1, dataNum);
out = exp(-sum(dataMinusMu.*(invSigma*dataMinusMu), 1)/2)/((2*pi)^(dim/2)*sqrt(det(sigma)));

% ====== Self demo ======
function selfdemo
% Plot 1-D Gaussians
x = linspace(-10, 10);
subplot(2,1,1);
hold on
for i = 1:20,
y = feval(mfilename, x, 0, i);
plot(x,y);
end
hold off; box on

prague12 發表在 痞客邦 留言(0) 人氣()