2013-11-15 1 views
0

총 34 초가 소요되는 속도가 나는 기능이 있습니다. 2 개 개의 느린 기능은 다음과 같습니다Matlab에서 플롯 팅 및 수치 계산을위한 처리 시간

1) 내가 아주 간단한 기능 파일이 : 현재 점과 startPoint를 그냥 정수

function [x] = percentChange(startPoint, currentPoint) 
x = ((currentPoint-startPoint)/abs(startPoint))*100.00; 

. 내 주요 기능을 수행하는 동안이 기능을 1.114.239 번 (내 컴퓨터 13.364s 사용)이라고합니다. 좀 더 빨리 할 수 ​​있을까요?

2) 꽤 오래 걸리는 또 다른 부분은 1934 줄을 그려 보는 것입니다.

for i=1:size(patternPlot,1) 
    hold all 
    plot(xplot,patternPlot(i,:)); 
end 

'patternPlot'저장 전 (xplot 그냥 벡터 1:30) 플롯 할 벡터를 다음과 같이 현재 플로팅 이루어집니다. 어떤 식 으로든 이것을 빠르게 할 수 있습니까? 미리

감사

J 1에서

답변

0

는) 번째 행에서 외부 호를 제거한다. 아마 속도를 얻지 못할 것이다. 단지 명료 함을 위해서.

실제로이 함수를 여러 번 호출해야하나요? 숫자가 하나씩 있습니다. Can not do (currentPoint-startPoint)./abs(startPoint)*100.00currentPointstartPoint벡터 인 곳?

2) : 루프 대신 단일 "벡터화 된 플롯"을 수행하십시오 : plot(xplot,patternPlot) 또는 더 나은 plot(patternPlot.'). 그것은 모든 것을 한 걸음 내딛을 것입니다.

+0

감사! 숫자 2의 속도가 7에서 0.498975로 감소하고 숫자 1이 1 초 더 빠를 것 같습니다. (괄호의 제거와 관련이 있는지 확실하지 않지만) – user84112

+0

@ user84112 환영합니다! 글쎄, 그건 아무것도 아닌 것보다 낫다. 어쩌면 누군가 더 감축을 제안 할 것입니다. –