페이지 정보
본문
matlab에서 그림 저장과 관련되어서 ㅡ.ㅡ 버그를 수정하던 중..
아래의 재미난 코드를 찾게 되어서 올립니다.
자신의 그래픽카드가 matlab에서 얼마만큼의 성능을 내는가를 확인할 수 있는 방법입니다.
우측 상단에 점수를 보세요.
pc1 : 2.83
pc2 : 2.7
GMA500 notebook : 0.451
아래의 코드를 그대로 실행하면 됩니다. ^^
혹시 테스트하면 점수를 리플달아주세요.~
===================================================아래의 코드 실행
% HOW FAST IS YOUR GRAPHICS CARD?
% Michael Kleder, June 2005
function howfast
close all
A=rand(800,3)*2-1;
n=sqrt(sum(A.^2,2));
A=A./repmat(n,[1 size(A,2)]);
b=ones(800,1);
V=con2vert(A,b);
k=convhulln(V);
ss='How fast is your graphics card?';
ff=figure('name',ss);
hold on
for i=1:length(k)
patch(V(k(i,:),1),V(k(i,:),2),V(k(i,:),3),...
'w','edgecolor','none')
end
axis equal
axis vis3d
axis off
h=camlight(0,90);
h(2)=camlight(0,-17);
h(3)=camlight(107,-17);
h(4)=camlight(214,-17);
set(h(1),'color',[1 0 0]);
set(h(2),'color',[0 1 0]);
set(h(3),'color',[0 0 1]);
set(h(4),'color',[1 1 0]);
material metal
tic
for x=0:-5:-3600
if ~ishandle(ff)
break
end
view(x,0)
set(ff,'name',[ss ' (Answer: ' num2str(abs(x/toc/6),3) ...
' rotations per minute)'])
drawnow
end
function [V,nr] = con2vert(A,b)
c = Ab;
if ~all(A*c < b);
[c,f,ef] = fminsearch(@obj,c,'params',{A,b});
end
b = b - A*c;
D = A ./ repmat(b,[1 size(A,2)]);
[k,v2] = convhulln([D;zeros(1,size(D,2))]);
[k,v1] = convhulln(D);
nr = unique(k(:));
G = zeros(size(k,1),size(D,2));
for ix = 1:size(k,1)
F = D(k(ix,:),:);
G(ix,:)=Fones(size(F,1),1);
end
V = G + repmat(c',[size(G,1),1]);
[null,I]=unique(num2str(V,12),'rows');
V=V(I,:);
return
function d = obj(c,params)
A=params{1};
b=params{2};
d = A*c-b;
k=(d>=-1e-15);
d(k)=d(k)+1;
d = max([0;d]);
return
- 이전글Digitizer 사용법 11.03.07
- 다음글매트랩 크기 변형 저장법 11.03.07