2011-04-13 4 views
0

는이 코드를 가지고 있지만 그것을 쓸 더 효율적이 있어야합니다 :이것을 Matlab에 쓰는 더 좋은 방법이 있습니까?

rt= RealTrans; 
rtsize=size(rt); 
rtrows=rtsize(1); 
Relative_Axis_Moves=[rt(1,1) rt(1,2) rt(1,3) rt(1,4) rt(1,5); 
rt(2:rtrows,1)-rt(1:rtrows-1,1) rt(2:rtrows,2)-rt(1:rtrows-1,2) 
rt(2:rtrows,3)-rt(1:rtrows-1,3) rt(2:rtrows,4)-rt(1:rtrows-1,4) 
rt(2:rtrows,5)-rt(1:rtrows-1,5)]; 

는 행렬의 두 행이 있습니다. 첫 번째 행은 rt(1,5)에서 끝납니다.

나는 또한 다음과 같은 코드가 있습니다

p1size=size(p1); 
p1rows=p1size(1); 
flank_edge_point=[0 0 0; p1(2:p1rows,2)-p1(1:p1rows-1,2) xy(2:p1rows,1)-xy(1:p1rows-1,1) xy(2:p1rows,2)-xy(1:p1rows-1,2); 0 0 xy(p1rows,2)]; 

가 어떻게 p1rows없이 MATLAB에서 xy(p1rows,2) 값을받을 수 있나요을?

RAMrow=size(Relative_Axis_Moves);
RAMrow=RAMrow(1);
for i=1:RAMrow
L(i)= norm(Relative_Axis_Moves(i,:));
end
L=L';
L(RAMrow+1)= 0;

효율적으로 더 간결이 코드를 작성하고 할 수있는 방법은 크게 감상 할 수있다 :

은 또한 행의 수에 의존하는 아래의 코드를 가지고있다.

+0

입니다. 자유롭게 그것을 무시하십시오. 감사합니다. – eat

답변

3

두 번째 행의 차이가 배열로 평가되므로 대부분 Relative_Axis_Moves에 두 개 이상의 행이있을 것입니다.

어쨌든,이 글을 쓰는 컴팩트 방법은 내가 더 읽기 하나의 코드 이럴 포맷

Relative_Axis_Moves = [RealTrans(1,1:5);diff(RealTrans(:,1:5),1,1)]; 
+0

@Venkat : 앞으로 추가 할 코드로 질문을 업데이트하십시오. 이 질문은 서식보다 나은 형식을 제공하며 주석보다 읽기 쉽습니다. 이번에는 텍스트를 업데이트했습니다. – abcd

관련 문제